Commit Graph

394 Commits

Author SHA1 Message Date
23d86aba5d Remove Injection functionallity which is currently broken and unused (fetchInstruction, logInjection, singleStep) 2014-06-11 18:06:12 +02:00
53dc6bbf36 Code cleanup 2014-06-11 11:04:03 +02:00
78a0d863a2 Expand Protocol for own Fail-Stop-Function 2014-06-11 10:54:26 +02:00
ea34860bd8 Merge "generic-tracing: manual supply of start/stop address" 2014-06-05 10:31:23 +02:00
3ef2af3230 Merge "generic-tracing: fix parsing of addresses > 2GB" 2014-06-04 17:11:24 +02:00
c827750090 Merge branch 'failpanda'
Conflicts:
	src/core/comm/DatabaseCampaignMessage.proto.in
	src/core/cpn/CMakeLists.txt
	src/core/cpn/DatabaseCampaign.cc
	src/core/sal/ConcreteCPU.hpp
	src/core/sal/SALConfig.hpp
	src/core/util/CMakeLists.txt

Change-Id: Id86b93d0e3ea4d9963fcc88605eec0603575ec83
2014-06-03 12:24:49 +02:00
f75c8613d8 experiments: use generated dbcampaign protobuf msg
Since commit c142818, DatabaseCampaignMessage.proto is generated into
the binary directory, which must be announced to the protobuf
compiler.

Change-Id: I0c3c4c6525df687012330573979dc897dfa8d701
2014-06-03 12:20:55 +02:00
277958b31b cleanups
Change-Id: I8022d937477668253c613e97c3a579ae65084b1e
2014-06-03 11:47:20 +02:00
1e9da8f4e6 generic-tracing: manual supply of start/stop address
This change allows to use the generic-tracing experiment with a
manually specified start/stop address.  This is necessary to use it
with more complex systems that aren't booted from a single ELF file,
such as Fiasco.OC.

Change-Id: Iafc59f56a25a1949174724fa9ae32a1eafc5922a
2014-05-19 16:48:29 +02:00
85d1f91b0e generic-tracing: fix parsing of addresses > 2GB
We should use strtoul() instead of strtol() for parsing 32-bit addresses.

Change-Id: I46ebe32cbbebe36b18e4d10fd519ab788471fdc4
2014-05-19 16:48:08 +02:00
0afd619ec3 weather-monitor: use uint32_t for instruction pointer
This fixes a gcc 4.7 warning: comparison between signed and unsigned
integer expressions [-Wsign-compare].

Change-Id: If440567c2767494f456e8e68df29e2f8d1582955
2014-05-08 16:26:50 +02:00
07968377b3 ecos: fix golden-run runtime conversion
BochsController::getTimerTicksPerSecond() only works reliably when the
simulation is already running (e.g., after a restore()).  This broke
timeout conditions for the very first experiment in a FailBochs instance.

Change-Id: Ice5f0aa0c6759f2d9341ad4f21d5c346307b4c12
2014-04-27 19:04:05 +02:00
6c5bb9c8ed removed experiments/weather-monitor-gem5
This crippled version of the weather-monitor experiment is not needed
anymore, as gem5's restore() works now.

Change-Id: Icc3bced6b04241d55f2acc46f341cf553b6dbd08
2014-04-25 11:20:13 +02:00
0807d5d9f6 L4Sys: dependency fixes
Thanks Horst!

Change-Id: I7711c7353619fdfd414ecbc1c9899308fd437d7d
2014-04-23 15:39:45 +02:00
1d42007168 vezs-example: update experiment for new VEZS lecture
Change-Id: Ifea2169ceb83135e6e53663d077f8f574539f512
2014-04-08 15:45:43 +02:00
440cba706b Merge "Adds KESO garbage collector experiment" 2014-04-08 15:45:24 +02:00
940fa6035d ecos: record simulated runtime
As the eCos kernel tests do not sufficiently check for failures, a
(compared to the golden run) measurably *reduced* simulation time can be
used as an indication for SDC.

Change-Id: I303f6c3f7ef56cb691c1f226eff74d113dd16629
2014-04-03 14:45:46 +02:00
396e00ce59 cmake: static library dependencies
CMake does not support linker groups, which were used to "automatically"
fix circular dependencies between different static FAIL* libraries and
the ordering of dynamic external libraries broke linking.
CMake can however correctly invoke the linker if dependencies are decribed
correctly (even if circular). This required changing all add_dependencies
calls between libraries to target_link_libraries (which creates a link-time
dependency) and linking all experiments to fail-sal.

Change-Id: I3a0d5dddb9b3d963ef538814e20d6b3de85d4ec5
2014-03-24 11:47:46 +01:00
b7ff284d54 generic-tracing: add configuration dependencies
Added hint: Use /dev/null if no state is required

Change-Id: I76a935f88e6a7a8f707970797d508dad3a961ab5
2014-03-20 10:59:45 +01:00
6e03753b6e ecos: modifications for mibench benchmarks
Change-Id: Ifecbf24912dbffa814b189aed9336a5420ec6392
2014-02-25 13:32:56 +01:00
cbf9daea97 ecos: rewrite for DatabaseCampaign
+ modified resulttypes

Change-Id: I463759e66e7497c80eeee9a065fc95e058ec3dc1
2014-02-25 13:32:56 +01:00
c319f3458c serialoutput: consistent plugin class naming
Change-Id: I8abe0cfdebecb0adc7229e29bd241da65b27105a
2014-02-25 13:32:55 +01:00
b6fc98abae generic-tracing: remove --save-symbol
At least for the Bochs backend there might be side effects when saving
the simulator state while tracing, which therefore should be avoided.
As there is no known use-case for using a --save-symbol different to
--start-symbol, this change disables the semantics behind
--save-symbol completely and only keeps the command-line switch for
backward compatibility reasons (existing automatic test scripts etc.).
The generic-tracing experiment now complains and aborts if a
--save-symbol different to --start-symbol is given.

Change-Id: I6072d846be96e016534cc83db375a400cfc25303
2014-02-19 19:08:46 +01:00
836325e74b generic-tracing: cleanups
Change-Id: I5c3d1131248910228cb4fee44cf107c750c01e21
2014-02-19 19:08:46 +01:00
44a0359087 Adds KESO garbage collector experiment
Change-Id: I429b58912b46b2ab7213e18651f14f7aed303419
2014-02-07 12:55:32 +01:00
d307dd2ecb dciao-kernelstructs: reuse sobres experiment for ISORC2014
Differences:

- the task activation order is determined in the faulty experiment as
  well as in the golden run (which is now done by
  fail-generic-tracing) by observing a variable fail_virtual_port.
- There is a panic value read from the fail_virtual_port
- The golden run task activation is determined by giving an extended
  trace to task_activation.py. The script collects all writes to
  fail_virtual_port, and determines the activation from this.

Change-Id: Id401b78933b45a4b2cf031fc0a8b5ac90151ec24
2014-01-27 10:32:09 +01:00
99bc6e7c03 lra-simple-panda: Experiment updated for evaluation
Change-Id: I7905bda6aab7825c28b750683f2712161add325b
2014-01-23 18:53:19 +01:00
8b5098abdd tools: added compute-hops and dump-hops tools
As these tools work closely together with fail components, its
easiest, to build them in this context. As these tools don't
really matter for fail use, they might never be pushed to the
master branch.

Change-Id: I8c8bd80376d0475f08a531a995d829e85032371b
2014-01-23 18:53:11 +01:00
52e5ee8f60 lra-simple-panda: converted experiment to campaign
As we need hop chains to efficiently navigate to the injection
point on pandaboard, this campaign uses these. As we do not yet
have a component, which automatically navigates to a generic
InjectionPoint (API needs to be properly designed), we do this
explicitly.

Change-Id: I26ca6ebb3f05cde735f9641551a8ce5478e463f6
2014-01-22 18:04:36 +01:00
e8eebb69ba experiments: new experiment for testing pandaboard
Change-Id: Ic27eb3ddc34fdac944b26e70ac4347330cbab044
2014-01-22 17:43:31 +01:00
4cb97a7fa5 formatting, typos, comments, details
Change-Id: Iae5f1acb653a694622e9ac2bad93efcfca588f3a
2014-01-22 13:08:13 +01:00
122eb8c9dc use uint32 for addresses in protobuf msgs
This prevents integer overflows when using addresses > 2GiB, which are
common for x86 operating systems with paging (Linux, Fiasco.OC) or
some test cases on the PandaBoard.

Note that this results in slightly different result table definitions
when automatically translating an experiment's protobuf message in the
DatabaseCampaign.

This change affects all existing protobuf messages to prevent
copy/paste propagation of this issue.

Change-Id: I09ec4b9d45eddd67a7a24c8b101e8b2b258df5e2
2014-01-21 00:08:41 +01:00
5ac108ea4b Merge branch 'mysql-concurrency-fixes' 2014-01-20 18:35:35 +01:00
84aac60a70 use libmysqlclient_r to ensure thread safety
According to
<http://dev.mysql.com/doc/refman/5.5/en/c-api-threaded-clients.html>,
(potentially) threaded clients should use the reentrant
libmysqlclient_r.  This is just a precaution, I haven't seen any
issues with the normal libmysqlclient.

Change-Id: Icb29df6dd54eb666e3b43b73fbda406acccd11cb
2014-01-20 18:34:51 +01:00
0a5e54e9aa ecos_kernel_test experiment bugix: don't resume if 'experiment reached finish() before FI'
Change-Id: Id0bb9400b8aa28307ed385a8c32b91b17254ba1c
2014-01-15 12:52:44 +01:00
34065fea60 weather-monitor: command line parameter are forwarded now
Parameters that are specified on the command line are now also forwarded.

Change-Id: I0e636f14dba43ef7877ce6e6deca1abb1f00a8a6
2014-01-03 16:38:02 +01:00
0907dfb0ae weather-monitor: now is a DatabaseCampaign
"removed" unneccessary memory-mapping ("Step 0")
cleaned out ExperimentData - now consists only of fsppilot and resultset
resultset now contains bitoffset which is part of result-table's primary key
adapted code to work with msg.fsppilot() instead of ExperimentData-values

Change-Id: I3b310e7a71d4b28479028250cd5722b3b2ce9f8c
2013-12-11 14:38:01 +01:00
8f0db45dfe Exp: Base system for the real time systems lecture
Change-Id: I3e5b8c6e60b57e6ec03500e9ee109fd5fb322cb2
2013-11-11 13:08:26 +01:00
443b3e4919 L4Sys: termination shortcuts
Add two new breakpoints to L4Sys experiment that allow detecting that
execution terminated with an error: vga_console_blink() is called by the
kernel if JDB was entered (meaning we are hanging, e.g., due to an
assertion); also longjmp() is only used by PF handling code after no
valid page fault handling could be performed

Change-Id: Ice61039c4bd07815a316bbc0bdb39f3483d9a1da
2013-11-06 17:37:20 +01:00
d4f22a38ff L4Sys: EIP deviation tracking
* after injecting a fault, track how many instructions it takes until
  execution deviates from original execution
* also track what the first deviating EIP value is

Change-Id: I18a9250517ca90214728c2c4b036b412f5dbf224
2013-11-06 17:37:20 +01:00
3db5d034a2 InstructionFilter: make unused EIP a default 0 parameter
Change-Id: I972be71af70934eef98bc67b27e32a98ecb8be3b
2013-11-06 17:37:20 +01:00
a5866a68a2 add l4-sys ignore file
Change-Id: Iea2228d8bafc2a3ecb4b6e26e2552813821a3d0b
2013-11-06 17:37:19 +01:00
71170145e0 Adapt l4-sys experiment to importer fix
no need to decrement instruction offset before setting bp anymore

Change-Id: I7f9c02349663899fa8f496a46bcb357bd567ac5c
2013-11-06 17:37:19 +01:00
63610d0652 L4sys: build fix
experiment.hpp is parsed before l4sys.ph.h is generated
-> remove dependency

Change-Id: I128108e562877caca732ad43fdb65b12e56951f8
2013-11-06 17:37:19 +01:00
c000b50101 Merge branch 'tracing-off-by-one' 2013-10-28 18:37:07 +01:00
77b2e208d0 L4Sys Experiment: more on address space tracing
* introduce L4SYS_ADDRESS_SPACE_TRACE to indicate that we want
  to trace instructions in a different AS from the one we are starting
  the experiment in
* add CR3Run() to determine address space ID

Change-Id: I7bdaf1e858a6dd369af5175bd56e1b4e2d5f05ef
2013-10-21 15:28:07 +02:00
523f4a465b add injection address to results
Change-Id: I7966f97b8c09bbd6510ca6066dd40be398b54de3
2013-10-21 15:28:07 +02:00
090125a283 Revert "generic-tracing: fix lossage of first event"
This reverts commit 036e340bd9.

Problems with this one were:
 -  Broken event timings.  m_prevtime wasn't reset to m_curtime in
    TracingPlugin::handleSingleIP(), resulting in a large deltatime
    being recorded for the second event, too.  This effectively
    doubled the experiment's start time.
 -  Code repetition (copy/pasted for special handling of first event),
    making planned changes (advanced tracing for IP events) more
    difficult.
 -  Unnecessary additional tracing-plugin interface method.

Change-Id: I4b74d1a3f4563aabe6626399f9b30a2171b4c285
2013-10-17 17:44:43 +02:00
036e340bd9 generic-tracing: fix lossage of first event
When using the generic-tracing experiment for generating a trace, the
first event, after the tracing is started (the start-symbol) is lost
in the trace. This patch handles this special case seperately.

Change-Id: Ia131a8559d67161532504160826fdb100247ed75
2013-09-19 15:57:11 +02:00
ee6ffef828 Merge "experiments: new cored-voter experiment" 2013-09-18 16:07:14 +02:00