- Jan 09, 2016
-
-
Horst Schirmeier authored
Change-Id: I29b40d9d80b13c3653ea5bec8b43191e2cf41454
-
- Nov 14, 2015
-
-
Horst Schirmeier authored
Change-Id: I6a8d32fc2739dc5dba817507321bd395684860aa
-
- Sep 18, 2015
-
-
Christian Dietrich authored
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
-
Christian Dietrich authored
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
-
Christian Dietrich authored
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
-
Christian Dietrich authored
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
-
Christian Dietrich authored
The instructions per second config option influences the point in time of IRQ events and the simulator time values. Change-Id: Ied08ea577408d21839d100734f3cce552ee547f2
-
Christian Dietrich authored
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
-
Christian Dietrich authored
One construction of MemWriteListener did not set the MemAccessEvent type correctly. Change-Id: I34a34a34c1c23b2081d4749ee5e5372461c21717
-
Christian Dietrich authored
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
-
- Sep 03, 2015
-
-
Christoph Borchert authored
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
-
- Aug 07, 2015
-
-
Christoph Borchert authored
-
Christoph Borchert authored
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
-
- Aug 06, 2015
-
-
Horst Schirmeier authored
- 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
-
Horst Schirmeier authored
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
-
Horst Schirmeier authored
Change-Id: I53d0931e28fa70438a3b8c3ccb289730f0485e94
-
- Aug 05, 2015
-
-
Christian Dietrich authored
* changes: GenericExperiment: Fix definition of "detected-marker" Gitignore: ignore vim swap files
-
- Jul 31, 2015
-
-
Horst Schirmeier authored
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
-
- Jul 29, 2015
-
-
Tobias Stumpf authored
Fix the problem that injection was never enabled if func_entry == filter_entry. Change-Id: Ifec64b6d1351e0857e568ca132cfed891f85aa62
-
- Jul 23, 2015
-
-
Horst Schirmeier authored
Change-Id: I4070f0846ee04376e74ed39cfb37cc8b78763ddd
-
- Jun 19, 2015
-
-
Christoph Borchert authored
Change-Id: I59ed61e2e4ee7ffe1a29390dd6ff0264406c3e7b
-
Christoph Borchert authored
Change-Id: I6997dcb767fa302745a3a1c35eae2d5ad5166372
-
Christoph Borchert authored
* 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
-
- Jun 16, 2015
-
-
Christoph Borchert authored
Change-Id: I2aa2d5733f52b4ed8abf9d619bca733fbabb5389
-
- Apr 25, 2015
-
-
Horst Schirmeier authored
Change-Id: I6a6557e1cb2b01631bfdd0012d9608b06437f90b
-
Hannes Weisbach authored
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
-
Hannes Weisbach authored
Change-Id: I45d6241e169147e120ae1cf6d4fc870f9969fe99
-
- Apr 20, 2015
-
-
Simon Schuster authored
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
-
- Apr 17, 2015
-
-
Christian Dietrich authored
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
-
- Apr 16, 2015
-
-
Simon Schuster authored
As a convenience, add vim's generated swap files (*.swp) to the .gitignore file. Change-Id: I27d83526565186f009f3feb6e27a1b7f7ba87a63
-
- Apr 10, 2015
-
-
Horst Schirmeier authored
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
-
Horst Schirmeier authored
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
-
Horst Schirmeier authored
This fixes a wrong variable scope introduced in commit 193e5b75, breaking compilation. Change-Id: I74194e9ea6e726bc0a7ce2ee5ad5439b7de87fba
-
- Apr 08, 2015
-
-
Horst Schirmeier authored
-
Horst Schirmeier authored
-
- Apr 01, 2015
-
-
Horst Schirmeier authored
Change-Id: I9737c3304dfa5e265786cd2bab5d59ab282fc25a
-
- Mar 18, 2015
-
-
Horst Schirmeier authored
This change adapts several experiments, including the DatabaseExperiment framework, to the restore() behavior update from the previous change. Existing traces should continue to be usable. This is not tested yet, mainly because I don't have access to most of the experiment targets / guest systems necessary for testing. Please test your own experiments if possible, or at least leave me a note that you couldn't test it! Especially the cored-voter/experiment.cc update may be broken, but maybe the "FISHY" +2 in there was not OK in the first place. Change-Id: I0c5daeabc8fe6ce0c3ce3e7e13d02195f41340ad
-
- Mar 06, 2015
-
-
Horst Schirmeier authored
BochsController::restore() now recreates a state more expectable from the experiment. The state is now the same that save() leaves behind in its most prominent use case after hitting a breakpoint. This change breaks backwards compatibility with some experiments, see below! Right after a breakpoint on a specific address fired and BochsController::save() was called, another breakpoint on that specific address would not fire again (unless that instruction is executed again later on). Up to this change, the situation after calling BochsController::restore() was different: A breakpoint on that specific address would fire twice. This difference led to the problem that running the tracing plugin after save() would work fine (recording the current instruction once, since 3dc752cd "tracing: fix loss of first dynamic instruction"), but running it after restore() would record the current instruction *twice*. This change aligns restore()'s behavior to that of save(). The implications for existing experiments, traces and results are: - Existing result data should be not affected at all, as trace.time1/time2 were correct before this change. Nevertheless, the assumption time2-time1 >= instr2-instr1 does not hold for equivalence classes including the first instruction, if the latter was faultily recorded twice (see below). - Existing traces that were recorded after a restore() (with a tracing plugin including the aforementioned commit 3dc752cd) contain the first instruction twice. An affected trace can be corrected with this command line: dump-trace old.tc | tail -n +2 | convert-trace -f dump -t new.tc - For experiments that record traces after a restore() (such as ecos_kernel_test), nothing changes, as both the tracing and the fast-forwarding before the fault injection now see one instruction event less. - Experiments that record traces after a save(), especially those that rely on the generic-tracing experiment for tracing, now see one instruction event less, before they need to inject their fault. These experiments need to be adjusted, for example dciao-kernelstructs now should use bp.setCounter(injection_instr) instead of bp.setCounter(injection_instr+1). Change-Id: I913bed9f1cad91ed3025f610024d62cfc2b9b11b
-
Horst Schirmeier authored
BochsController::save() now can in principle be called multiple times in a row. Not that this would really make sense, but the results are consistent now. Change-Id: Ib4c6eb571a364b0f7ea6142c8cfec004a12f98b3
-
- Feb 09, 2015
-
-
Horst Schirmeier authored
BochsHelpers.hpp is included by some aspect headers, which are implicitly included into many (all?) translation units. As in most TUs the "static inline" defined getCPU function is not used, every time a "unused function" warning was generated. Change-Id: Ibb903fe7a11aaf1f455a626c8bf8b86f50857645
-