Commit Graph
20 Commits
Author SHA1 Message Date
Christian Dietrich be8d5edbc3 import-trace: reorder functionality in importer
BasicImporter is renamed to MemoryImporter. An alias for BasicImporter
in the cmdline interface will remain. The MemoryImporter does now only
handle memory and IP events. The simulation time, dynamic instruction
count and handling of open ECs is moved to Importer.

Change-Id: I04eb0fd4b52fbf5b0ca9ab97778a62130cb626ee
2013-07-03 13:19:12 +02:00
Christian Dietrich 81fe0ea628 import-trace: dropped DCiAOKernelImporter
This importer is so similar to the basic importer, that it can be
dropped. The current state was used in the SOBRES 2013 Paper.

Change-Id: Ibed1af6e1a72286500d42e83e594557d6dcf3803
2013-07-03 13:17:53 +02:00
Christian DietrichandGerrit Code Review cfa311979e Merge "sal/bochs: force eflags after writing" 2013-07-03 13:08:39 +02:00
Christian Dietrich 9b124fac8f sal/bochs: force eflags after writing
The correct flags accessor methods should be used to write the flags register,
since values (especially the arithmetic flags) might be cached.

Change-Id: I338927cfdd1f111966be539668914c9256b54c8f
2013-06-21 11:04:34 +02:00
Christian Dietrich d9c9b43102 dciao-kernelstructs: several experiment fixes.
The previous fault injection experiment was kind of bullshit. This one
is better in several ways:

- sanity check at injection time (correct IP)
- correct counting of kernel_transistions
- copy whole activation scheme

Change-Id: I014eea4d6fe103bc02ffd7bbca95dc56a1a4d9ea
2013-05-29 16:18:22 +02:00
Christian Dietrich 6789a313a9 DCiAOKernelImporter: different injection semantic.
Is now very similar to normal importer, and may be deleted in the future, but
at the moment, this should be merged, since it is the importer used in the
sobres-2013 paper.

This changes the MySQL Schema. instr1_absolute was introduced.

Change-Id: I1bc2919bd14c335beca6d586b7cc0f80767ad7d5
2013-05-29 16:17:03 +02:00
Christian DietrichandGerrit Code Review b720985f62 Merge changes I7607911c,I6241ea2d,Ib94d6370
* changes:
  experiments/kesorefs: convert to DatabaseCampaign
  ElfReader: Add support for getting a section iterator
  Typos in BochsController.hpp fixed
2013-04-28 12:55:14 +02:00
Christian Dietrich 923ba362fa experiments/kesorefs: convert to DatabaseCampaign
Change-Id: I7607911c28ffb2427681db241ac721f1ae2c002a
2013-04-28 12:52:17 +02:00
Christian Dietrich 2753a165ba ElfReader: Add support for getting a section iterator
Change-Id: I6241ea2de9da1a1e709fae6374df4fc06ef26aaa
2013-04-28 12:51:59 +02:00
Christian Dietrich c24ed774b0 experiments/dciao-kernelstructs: new database driven experiment for DCiAO
The dciao-kernelstructs experiment does a trace imported by the
DCiAOKernelImporter:

   bin/import-trace -t trace.pb  -i DCiAOKernelImporter --elf-file app.elf

Pruned by the basic method:

   bin/prune-trace

and does CiAO fault injection experiments, where the results are
stored in the database.

Change-Id: I485dc2e5097b3ebaf354241f474ee3d317213707
2013-04-03 10:39:51 +02:00
Christian Dietrich bd8636b0e8 bochs-experiment-runner: small wrapper for running fail-clients
The wrapper builds a temporary bochsrc and sets an FAIL_STATEDIR
environment variable to a temporary directory. FAIL_ELF_PATH is also
set in regard to the command line interface.

Change-Id: I647c6eb3a91ae22847958ca30ede6e09519fba04
2013-04-03 10:39:51 +02:00
Christian Dietrich 87b11968c7 DatabaseProtobufAdapter: remove invalid include
The include was an development artifact and caused compilation errors in most
cases.

Change-Id: I6ecf8c1faa52cf6f854112e19aa1f8556cf09930
2013-04-03 10:37:13 +02:00
Christian Dietrich f18cddc63c DatabaseCampaign: abstract campain for interaction with MySQL Database
The DatabaseCampaign interacts with the MySQL tables that are created
by the import-trace and prune-trace tools. It does offer all
unfinished experiment pilots from the database to the
fail-clients. Those clients send back a (by the experiment) defined
protobuf message as a result. The custom protobuf message does have to
need the form:

   import "DatabaseCampaignMessage.proto";

   message ExperimentMsg {
       required DatabaseCampaignMessage fsppilot = 1;

       repeated group Result = 2 {
          // custom fields
          required int32 bitoffset = 1;
          optional int32 result = 2;
       }
   }

The DatabaseCampaignMessage is the pilot identifier from the
database. For each of the repeated result entries a row in a table is
allocated. The structure of this table is constructed (by protobuf
reflection) from the description of the message. Each field in the
Result group becomes a column in the result table. For the given
example it would be:

    CREATE TABLE result_ExperimentMessage(
           pilot_id INT,
           bitoffset INT NOT NULL,
           result INT,
           PRIMARY_KEY(pilot_id)
    )

Change-Id: I28fb5488e739d4098b823b42426c5760331027f8
2013-04-02 09:52:42 +02:00
Christian Dietrich 3a5dc285ab tools/prune-trace: fault-space pruning tool
This tool creates the fault-space pruning pilot and group
entries. Those are used by the generic campaign to do fault
experiments.

Currently prune-trace only implements conventional def/use pruning
(--prune-method "basic").

Change-Id: I1dfb431e3b1d3cd2ee891a49a3b6ac01210be11f
2013-03-26 16:19:05 +01:00
Christian DietrichandGerrit Code Review 1e5581644c Merge "tools/import-trace: new tool to import traces into MySQL database" 2013-03-22 11:48:11 +01:00
Christian Dietrich e3c633c248 tools/import-trace: new tool to import traces into MySQL database
The import tool does support the following import strategies:

- BasicImporter: generates def-use equivalence classes for read and
  write memory accesses
- DCiAOKernelImporter: generates equivalence classes for read access in
  the ciao kernel space.

Change-Id: I8960561d3e14dcf5dffa3ff7a59b61a5e8f7e719
2013-03-22 11:41:25 +01:00
Christian DietrichandGerrit Code Review 4e8098a636 plugin/tracing: merge full-tracing plugin into generic version
The full-tracing plugin was used in the DSN paper. It additionally
traces the data that was accessed/written on a memory access and the
contents of some CPU registers.

Change-Id: I61f5230699009ce523aba341985b98148160556d
2013-03-21 17:11:51 +01:00
Christian Dietrich b491fe8b7a experiment: generic tracing experiment 2013-03-11 15:29:26 +01:00
Christian Dietrich ad3c185b61 core/util: Added CommandLine interface (for bochs) 2013-03-11 15:29:26 +01:00
Christian Dietrich c1f32f5a98 ElfReader: add some convenience functions 2013-03-11 15:29:25 +01:00