In the current configuration, OK_MARKER would be plotted in white
color and be indistinguishable from the background. Not plotting
these areas at all reduces output-file size. As a side effect, the
initial Y-axis zoom level (ymin, ymax) can change.
Change-Id: Ic7b1a22a5a6f58e4df0849bca5262c646051ae2c
By default, the data-aggregator scripts create machine-readable,
tab-separated output. The optional "-t" switch (passed to the
internally used `mysql' command-line client) creates human-readable
table output instead.
Change-Id: Ie448c21a4e82dea83f3e43e6642e67eb85f8b8e9
This change additionally allows to create a resulttype/occurrences summary
over all benchmarks in the database, instead of specifying a single one.
Change-Id: I4fc7fd735300168f1e4f9e24a51aba469a7269a8
Instead of using the address difference between two neighboring symbols as
an indication for the symbol's size, import the size as reported by
`nm -S'.
Additionally, this change fixes an off-by-one, which had the effect that
the last symbol in the list was not imported at all.
Change-Id: I3c8e139b788018702526bb968e36d248dc3fe8fc
This change introduces a loose collection of scripts for
analysis/aggregation of FAIL*'s collected data.
It's going to be developed into a proper tool in the future.
Change-Id: I63f14d87dd86b62817ec3d8089079d70f58c89c9
This change adds the capability to import an ELF's symbols
into the database. The functionality is implemented via a
shell script and will be merged into "import-trace", when
it's being cleaned up sometime in the near future, but for
now this suffices.
Change-Id: I933783659674fcf31f5181fc13661fe10f5b9fe8
This change adds detection of SDCs to GenericTracing and
GenericExperiment via Bochs's I/O port E9.
Change-Id: Ie036aa97468b45cad94b6c8f73d1ef2d227547b2
This change introduces the ability to inject burst faults to
the DatabaseCampaign/-Experiment and thus to all derived
campaigns/experiments.
Change-Id: I491d021ed3953562bd7c908e9de50d448bc8ef33
Up until now only generic-tracing had the feature to directly
pass an ELF file to the experiment. generic-experiment lacked
that functionality and resorted to using the $FAIL_ELF_PATH
environment variable.
This change introduces the "--elf-file" command line argument
to generic-experiment.
Change-Id: Ie74de9e1781275ab247786856e13e412bac39224
This change adds the faultspace-plotting scripts into FAIL*'s
tools/analysis/ folder and makes it CMake-configurable.
Change-Id: I9364a448a33853520629291721a6ed6d4e82eb32
- Debian 8 does not provide libsvga1-dev anymore, so Bochs cannot be
built --with-svga (which is included in --with-all-libs).
- The latest AspectC++ nightlies should work without any
-D__NO_MATH_INLINES -D__STRICT_ANSI__ tricks.
Change-Id: I56801a0735eb4922689dff812923d79faa94d26e
ERIKA Enterprise is a OSEK conforming embedded RTOS. The supplied tracer
and experiment are similar to the cored-{tracing,tester} experiment, but
checks the integrity of the RTOS application in a different
manner. Stacks and stackpointers are located differently in ERIKA. This
experiment was used in RTAS'15 Hoffmann et al.
Change-Id: Idc8d874eb4d4ef15837f903270cfa521bc9514a2
With the instantiate-indirect.ah method, we can choose between different
experiment flows at runtime. By this, we can combine tracing and actual
injection into one fail-client binary. A -Wf,--mode={tester,tracer}
switch does hand the control to different experiment flows.
Change-Id: Ia268489ff6bc74dffea745b7aedcb36e262e8079
For redoing the bench-coptermock-isorc experiment, we have to change the
timeout settings. We now use a soft timeout setting. A soft timeout is
resetted after each checkpoint event. If a hard timeout (2 seconds) is
reached although the soft timeout was resetted, we also abort the injection.
Change-Id: Ib7c2b1ad201641f47434a11d3273dde797e0012e
The checkpoint plugin is able to use dynamic values from within the
target to calculate its ranges. If the experiment injects faults within
those dynamic values, we will always get an digest error, even if it has
no influence on the outcome of the experiment or the integrity of the
data range.
Therefore, the plugin now provides a possiblity to cache those dynamic
values, before injecting them. This has to be done explicitly within the
experiment.
Change-Id: Ib2cbedd570ea9ab9c97efc152279e8eb79c573f4
The instructions per second config option influences the point in time
of IRQ events and the simulator time values.
Change-Id: Ied08ea577408d21839d100734f3cce552ee547f2
Sometimes the lines in an objdump can get very long. Therefore, we limit
the size of the field, which is put into the database, to the maximal
size of the opcode, instruction, and comment column.
Change-Id: I8d7db33e8319f71e9dae14f683bba0ce1654b1f8
The injection_instr_absolute can be NULL, if the trace was imported by
--faultspace-rightmargin R. The database-experiment then aborted the
injection, since a non present injection instruction is encoded as 0,
which is != 0.
Change-Id: I0abcbf102e8b26678ea574d6f73741c2cfac6781
This options performs a restore to the saved state of the machine immediately
after saving (default: off). This option is needed when the state is used by
other experiments that depend on the trace, which slighty differs without a
restore.
Change-Id: I4fdf4c5e03779bb9c6e0a0fa335ceae3e20608a5
The generic-tracing experiment now supports logging of I/O port access to file.
Therefore, the serialoutput plugin needs to be included in the experiment
configuration. Without the --serial-file option specified, logging is disabled.
Change-Id: I9e60d8ffd598ee04a50b4d92fc283f75382d478a
- Add missing iomanip header: Without this one, Fail/gem5 does not
compile.
- Remove unnecessary sal/bochs header: This seems to be a relic from
when the DatabaseExperiment was Bochs-specific.
Change-Id: I91c991795c2c2e76359e9d11415f5119d225a4ab
This quick fix is necessary to let gem5 compile again. Instead of passing
NULL to onInterrupt(), a proper fix should pass the currently active
ConcreteCPU instance.
Change-Id: Ie4322fd98cb7b12309a21a2dd431f9bdc84efaf8
This change makes MemoryAccessListeners deliver linear addresses
instead of virtual ones deprived of their segment selector. Even in
modern operating systems, segment selectors are still used for, e.g.,
thread-local storage.
The hooks within MemAccess.ah could maybe be implemented in a simpler
and less fragile way using the BX_INSTR_LIN_ACCESS instrumentation
hook, but this needs more investigation.
Change-Id: I0cee6271d6812d0a29b3a24f34d605a327ced7da
* Removed all command-line options.
* Read all required information from *-traceinfo.txt file or kernel elf file.
* Record error_corrected (but only in the 'OK' case).
* Add support for multiple variants (similar to the ecos experiment).
Change-Id: I933e52881fc6bee0750d8aaef813fe2539166b06
Adds LIBUDIS86_PREFIX_DIR variable, to search for LIBUDIS86 in the
specified prefix. This makes it easier/possible to have libudis86 in
non-standard locations, for example when you don't have root.
Change-Id: Idaf86c9e03b2d4c35f60c3dc3b6da0d8efe97795
Due to a bug (most likely a copy and paste issue), the detected-marker
group was defined to point to the "FAIL_marker"-set, which would be
redundant. This commit will correctly map it to the "DETECTED_marker"
group.
Change-Id: I7de688357006ced1adf2423e213ae6633629cb81
The color_assert_port symbol does not exist in all dOSEK variant,
therefore we add the listener only if the symbol exists. Otherwise the
invalid handler will trigger on INV_ADDR
Change-Id: I7b81940a8413850527efb9e4bae86248794c622c
Use the newly introduced SimulatorController::getCPUCount() instead of
BX_SMP_PROCESSORS to figure out the number of CPUs the back end provides.
Change-Id: I6d6521ae508154366ab5d0c23ddcb6f2de99aa04
This change adds some missing headers needed for compiling the
PandaBoard variant, which seems to not have seen a compiler for a
while.
Change-Id: Ifb54abb4dc676fafc29ecbae97bafaa547fcfc80