Skip to content
Snippets Groups Projects
  1. Jan 08, 2015
  2. Jan 06, 2015
  3. Apr 07, 2014
  4. Apr 05, 2014
  5. Mar 26, 2014
    • Horst Schirmeier's avatar
      import-trace: limit to general-purpose registers · 84a03b55
      Horst Schirmeier authored
      This change limits fault injection to general-purpose registers, instead of
      relying on the LLVM/Fail* bridge to only recognize the status register
      (EFLAGS on x86) and general-purpose registers.  Since this bridge just
      learned to translate x86's control and segment registers, and these
      registers need special handling for fault injection (def/use pruning does
      not work here), only import register accesses from the RT_GP subset.
      
      Status register and instruction pointer injection remain functional, and
      import-trace now should work architecture independently.
      
      Change-Id: Id8ad2f0a9dab1861bf16ea9443c3bdfe7213d3fa
      84a03b55
  6. Mar 05, 2014
  7. Feb 25, 2014
    • Horst Schirmeier's avatar
      prune-trace: use none/none only without any parameters · 36ae6fd6
      Horst Schirmeier authored
      Before this change, running prune-trace with, e.g.
      "prune-trace -d fsp_mibench -v bitmap% --benchmark-exclude clockcnv"
      resulted in an implied "--benchmark none", rendering --benchmark-exclude
      ineffective and resulting in nothing being pruned.  Now, the "none" default
      only applies when neither --benchmark nor --benchmark-exclude (analogously
      for --variant / --variant-exclude) is provided.
      
      Change-Id: Ic7c88919d7cfde1261749a745dc6a679472ff348
      36ae6fd6
    • Horst Schirmeier's avatar
      import-trace: major speedup · 1df43e97
      Horst Schirmeier authored
      Using Database::insert_multiple() instead of prepared statements
      speeds up trace import by a factor of 3-4.  While being there, we now
      properly deal with nonexistent extended trace values (i.e., put NULLs
      into the DB).
      
      Side note: The ElfImporter should switch to insert_multiple(), too.
      
      Change-Id: I96785e9775e3ef4f242fd50720d5c34adb4e88a1
      1df43e97
  8. Feb 19, 2014
  9. Feb 17, 2014
    • Martin Hoffmann's avatar
      Fail* result browser for pruning experiments. · e4bf980b
      Martin Hoffmann authored
      Based on the database layout given by the pruner.
      Run ./run.py -c <path to mysql.cnf>
      (Default config ~/.my.cnf)
      
      - Checks if objdump table exists
      - Added view for results per instruction
      - Added config file support for table details
      - Overview data loaded at server startup
      - Result type mapping configurable via config file
      
      Based on Flask and MySQLdb
      
      Change-Id: Ib49eac8f5c1e0ab23921aedb5bc53c34d0cde14d
      e4bf980b
  10. Feb 11, 2014
    • Horst Schirmeier's avatar
      Revert "import-trace: emit warning for malformed traces" · b4f14474
      Horst Schirmeier authored
      Memory accesses that don't belong to the preceding IP event in the
      trace *do* have a use case:  a hardware interrupt causes the CPU to
      push its state onto the (kernel) stack.  At the moment we cannot
      distinguish this case from a malformed trace (as we don't record the
      occurrence of interrupts), hence this warning needs to be disabled for
      now.
      
      This reverts commit 84edd02b.
      b4f14474
  11. Jan 31, 2014
    • Philip Taffner's avatar
      Removes serial.out from bochs config for massive performance boost on · 4ba028e7
      Philip Taffner authored
      cluster runs.
      
      If this output file is enabled, all running processes try to write to the
      same file on the shared filesystem. They block each other which leads to
      massive I/O wait time and CPU idle time.
      
      This change reduces the runtime e.g. from several hours (12+) to few minutes
      (20).
      
      Change-Id: I028628af31c845fc517e5daca5b4f981eade3cf4
      4ba028e7
  12. Jan 28, 2014
    • Richard Hellwig's avatar
      import-trace: import debug info · 13175c25
      Richard Hellwig authored
      If the --debug option is set, the line number table of the elf binary will
      be imported into the database. The information will be stored in the
      "dbg_mapping" table.
      
      If the --sources option is set, the source files will be imported
      into the database. Only the files that were actually used in the
      elf binary will be imported.
      
      Change-Id: I0e9de6b456bc42b329c1700c25e5839d9552cdbb
      13175c25
  13. Jan 22, 2014
    • Horst Schirmeier's avatar
      formatting, typos, comments, details · 4cb97a7f
      Horst Schirmeier authored
      Change-Id: Iae5f1acb653a694622e9ac2bad93efcfca588f3a
      4cb97a7f
    • Michael Lenz's avatar
      prune-trace: use the first write pilot instead of any · 4ccddeb1
      Michael Lenz authored
      In some cases the write-pilot is located at the upper boundary of the
      experiment and thus is in a race situation with the experiment's end.
      If the experiment's end occurs first, the campaign ends and complains
      about missing data, otherwise everything is fine.
      This patch circumvents this via using "the first" writing pilot; iff the
      only write is located at the experiment's end, the race will still occur,
      but cleverly written experiment code can, according to hsc, circumvent it.
      
      Change-Id: I6a27a8c4770c04ea8dcaef8aa7bd85d18f43f0b5
      4ccddeb1
  14. Jan 20, 2014
    • Horst Schirmeier's avatar
      import-trace: emit warning for malformed traces · 84edd02b
      Horst Schirmeier authored
      The Fail* tools expect trace events to be ordered in a specific way:
      memory-access events are supposed to come *after* the instruction
      event for the instruction that caused them.  Using a different order
      may cause subtle problems with both fault-space pruning and fast
      forwarding.  This change introduces a warning message when such a
      malformed trace is detected (i.e., when the instruction pointer of a
      memory-access event does not match the preceding instruction event).
      
      Change-Id: I8ae7420fd8ff26e2574590748bdcc5a63db76490
      84edd02b
  15. Dec 04, 2013
    • Lars Rademacher's avatar
      import-trace: fix for using non-gzipped traces · 8b6d744a
      Lars Rademacher authored
      As non-gzipped trace files cause import-trace to always import zero
      events, the input file is now openend as in the dump-trace tool, where
      opening non-gzipped files obviously works fine.
      
      In the medium term we should find a centralized solution for this,
      instead of re-implementing it all over the place.
      
      Change-Id: I75845c03c0bbdc2b6b578b83d492b7dbbb40f051
      8b6d744a
  16. Oct 24, 2013
    • Christian Dietrich's avatar
      tools/import-trace: added ElfImporter · 148b09be
      Christian Dietrich authored
      The ElfImporter is not a real trace importer, but we locate it
      into the import-trace utility, since here the infrastructure is
      already in place to import things related to an elf binary into
      the database.
      
      The ElfImporter calls objdump and dissassembles an elf binary
      and imports the results into the database.
      
      Change-Id: I6e35673c8dbee3b7e8dfc7549d10e5dca9b55935
      148b09be
  17. Oct 21, 2013
  18. Oct 17, 2013
    • Horst Schirmeier's avatar
      import-trace: dynamic instruction off-by-one · 22b9646b
      Horst Schirmeier authored
      Richard noticed that instr2 values are off by one when done with the
      MemoryImporter vs. with his own importer.  The core problem is that
      the dynamic instruction counter in the Importer base class
      (Importer::copy_to_database, instruction_count_t instr) gets increased
      *after* reporting an IP event to the importer implementation; this has
      the side-effect that memory access events have a +1 dynamic
      instruction count offset with regard to the IP event of the
      instruction they belong to.
      
      Bottom line: IP events and all memory events belonging to that
      instruction should have the same dynamic instruction number.
      Christian argued for the numbers starting with 0, which, as a side
      effect, relativizes the repercussions of the change introduced in the
      previous commit, as the new "first" event gets the sequence number 0
      now.
      
       -  All experiments and importers only dealing with memory accesses
          (MemoryImporter) are affected by this change:  The dynamic
          instruction count now starts with 0 instead of 1.  Together with
          the previous commit, the only change is one additional dynamic
          instruction at position 0.  Note that existing trace files do not
          have this additional instruction, which shifts all trace positions
          by 1.
      
       -  All importers that process *only* IP events (InstructionImporter,
          RandomJumpImporter, RegisterImporter) won't see any difference.
          Commit 036e340b, though, introduced a +1 offset.
      
       -  Experiments that use these instruction counts for navigating to
          the target instruction must be checked to properly deal with the
          dynamic instruction #0 (no forwarding necessary).  All dynamic
          instruction offsetting should now work uniformly for both memory
          accesses and all other fault models.  To be sure everything works
          in order, sanity-check the current absolute instruction pointer
          right before fault injection.
      
      Change-Id: I3f509f1b47836fa78fd029a7bb7c36c878912d97
      22b9646b
  19. Oct 14, 2013
    • Horst Schirmeier's avatar
      import-trace: reparse parameters after importer instantiation · e636924d
      Horst Schirmeier authored
      Without this change, import-trace won't recognize, e.g., the -e and -t
      parameters if they come after a parameter that was added by the Importer:
      
      import-trace -i objdump --objdump arm-none-eabi-objdump -e B.elf -t C.tc
      [...]
      [import-trace 14:37:32] couldn't open trace.pb
      
      Change-Id: I9532b01e432055479c79d801b1ca2736a8fd21cc
      e636924d
  20. Sep 19, 2013
  21. Sep 18, 2013
  22. Sep 12, 2013
Loading