Skip to content
Snippets Groups Projects
  1. Jan 09, 2016
  2. Nov 14, 2015
  3. Sep 18, 2015
    • Christian Dietrich's avatar
      experiments: experiment for tracing and testing ERIKA · bfcb1b41
      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
      bfcb1b41
    • Christian Dietrich's avatar
      dosek: merge trace and test experiment · 1e572faa
      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
      1e572faa
    • Christian Dietrich's avatar
      cored-tester: adapt the cored tester experiment · f73008f6
      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
      f73008f6
    • Christian Dietrich's avatar
      plugin/checkpoint: add possibility to cache data · 07b6275c
      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
      07b6275c
    • Christian Dietrich's avatar
      bochs-experiment-runner: make IPS configurable · 05f557ec
      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
      05f557ec
    • Christian Dietrich's avatar
      import-trace: objdump importer cut off long lines · b6db95ff
      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
      b6db95ff
    • Christian Dietrich's avatar
      MemWriteListener: Set accesstype correctly · 748b0aea
      Christian Dietrich authored
      One construction of MemWriteListener did not set the MemAccessEvent type
      correctly.
      
      Change-Id: I34a34a34c1c23b2081d4749ee5e5372461c21717
      748b0aea
    • Christian Dietrich's avatar
      database-experiment: no abort on injection_instr_absolute==NULL · f7c9917f
      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
      f7c9917f
  4. Sep 03, 2015
    • Christoph Borchert's avatar
      generic-tracing: add --restore command-line option · 65e4409c
      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
      65e4409c
  5. Aug 07, 2015
  6. Aug 06, 2015
  7. Aug 05, 2015
  8. Jul 31, 2015
    • Horst Schirmeier's avatar
      bochs: translate virtual to linear addresses · 1d9dae0e
      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
      1d9dae0e
  9. Jul 29, 2015
  10. Jul 23, 2015
  11. Jun 19, 2015
  12. Jun 16, 2015
  13. Apr 25, 2015
  14. Apr 20, 2015
    • Simon Schuster's avatar
      GenericExperiment: Fix definition of "detected-marker" · ce41b30f
      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
      ce41b30f
  15. Apr 17, 2015
  16. Apr 16, 2015
  17. Apr 10, 2015
  18. Apr 08, 2015
  19. Apr 01, 2015
  20. Mar 18, 2015
    • Horst Schirmeier's avatar
      adapt experiments to new restore() behavior · 193e5b75
      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
      193e5b75
  21. Mar 06, 2015
    • Horst Schirmeier's avatar
      core/sal: restore() more reliable for bochs · 91a9c6f6
      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
      91a9c6f6
    • Horst Schirmeier's avatar
      core/sal: allow repeating BochsController::save · bd5802e5
      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
      bd5802e5
  22. Feb 09, 2015
    • Horst Schirmeier's avatar
      core/sal: silence "unused function" warning · d2899e8d
      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
      d2899e8d
Loading