Commit Graph

506 Commits

Author SHA1 Message Date
cfa311979e Merge "sal/bochs: force eflags after writing" 2013-07-03 13:08:39 +02:00
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
12f9915d1c core/efw: send back results earlier
The client sends results back earlier (i.e., before all jobs are
done) if the client response time (CLIENT_JOB_REQUEST_SEC) is
exceeded. This makes sure that extraordinarily long-running
experiments get reported back before, e.g., the LIDO job timeout
kills the Fail* instance.

Change-Id: I3ada0360ec54b63f80a7008570ca514449720220
2013-06-17 17:43:42 +02:00
eeeeb92ee7 Merge "core/sal: dependency checks moved to listener classes" 2013-06-05 15:36:33 +02:00
3e7da9b09a core/sal: dependency checks moved to listener classes
It is no longer required (and recommended) to write a dependency
check (using conditional compilation) in the experiment code. Instead,
the Fail code performs these checks itself. If an experiment is
compiled without having the required configuration flags set to
enabled, the compiler emits an error. This is because the constructors
of unused listener classes are declared as protected. (Note that
this works only because the Fail code does not create any listeners.)

In a next step, one should remove all the dependency guards in the
existing experiments (not needed anymore).

Change-Id: I1331813a432a752322d510b4102da53ff53294f0
2013-06-05 15:30:05 +02:00
f3c36e70ef ecos: stack-protection eval
Change-Id: I576c2ef3834f61bb9017af37541afc7639672782
2013-05-29 16:43:46 +02:00
de754c5f27 comm: handle connect() failures properly
Quoting connect(3posix): "If connect() fails, the state of the socket is
unspecified.  Conforming applications should close the file descriptor and
create a new socket before attempting to reconnect."

Change-Id: Ibcdcc0f546560a41009832894659a37947243f2f
2013-05-29 16:29:09 +02:00
d937be90ea util/CommandLine: make non-option args accessible
The argv list must not be temporary for this, and became a class
member.

Change-Id: I159dd2a0d43768a7926b639f93a4ff9f2bfb7c9a
2013-05-29 16:29:09 +02:00
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
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
6d8b3331d8 doxygen: doc generation fixed
Doxygen skips undesired directories and files now. In addition, the
documentation of the "fail" namespace has been fixed. Note that there
are still several warnings (due to incomplete documentations) in the
Doxygen output.

Change-Id: Idad4f1ecff453765b307fa40a5c1cebc0c2ce2bb
2013-05-29 13:34:12 +02:00
043e264677 gem5: The serializeAll(path) method don't have to be invoked on the root object.
The checkpoint which is produced by this save method is a little bit
different to the checkpoint which is produced by the --take-checkpoint
command. It differs in the save-parameters so_state, funcExeInst, intRegs,
_upc, _nupc, _when. Tests have shown that it probably does not affect the
course of the program execution.

Change-Id: Id776a10f2d40f71643e9edbb45d7368609309df4
2013-05-23 18:10:14 +02:00
503a40be7b gem5: save/restore moved to Gem5Controller
Change-Id: I5bda346f29d74fdfc67f73f0af83ed1e006d8616
2013-05-23 17:17:36 +02:00
a6c24489f6 Revert "gem5: save/restore moved to Gem5Controller"
This reverts commit d525005990.
2013-05-22 17:38:56 +02:00
dd81913f2c Revert "gem5: The serializeAll(path) method don't have to be invoked on the root object."
This reverts commit 60735f254e.
2013-05-22 17:38:39 +02:00
60735f254e gem5: The serializeAll(path) method don't have to be invoked on the root object.
The checkpoint which is produced by this save method is a little bit
different to the checkpoint which is produced by the --take-checkpoint
command. It differs in the save-parameters so_state, funcExeInst, intRegs,
_upc, _nupc, _when. Tests have shown that it probably does not affect the
course of the program execution.

Change-Id: I19b3fc809288224532e0ed6b7910a45115cb1c5d
2013-05-22 15:56:04 +02:00
d525005990 gem5: save/restore moved to Gem5Controller
Change-Id: I0ce72f04a8de88f4f8b6c1f0bba7a9097c82e107
2013-05-22 13:54:55 +02:00
515eb9973b Fail* CPUState: set/getRegisterContent() uses "const Register*" as 1st param
The first parameter (Register* reg) is only used as input (const-correctness).

Change-Id: I5a75a9f7378913e491a8a22872f51a385e910af6
2013-05-07 14:48:36 +02:00
72c9ba6363 Added abo-simple-arm experiment code
It is a simple and short experiment that performs single stepping
through the target. It is designed to be used with gem5 (+ ARM).

Change-Id: Id48b2b087a3650bd0298454ff168c0dbdaaae0c8
2013-05-07 14:46:19 +02:00
924b40615d gem5: revisited register implementation
The previous implementation wasn't in a working state because
the register content retrieval was buggy. (For example, RT_FP
does *not* denote a "floating point" register. Instead, it is
the frame pointer!)

Change-Id: I31fd80d374c945adaf35b47958d6437a8e2d48c3
2013-05-07 14:45:54 +02:00
619f62b09f gem5: added getMnemonic() (requires breakpoints)
Change-Id: I5a2862a0ad3c3d506189a6196682e227205ebe09
2013-05-07 14:42:59 +02:00
578e7defd0 gem5: compiles again
Change-Id: Ia95f64953af86003c4be4cbeb01a927d6638f1be
2013-05-07 14:41:52 +02:00
699f14cf0f Merge "gem5: revisited breakpoint implementation" 2013-05-07 13:06:04 +02:00
20b70df651 efw/JobClient: knock less often when there are no jobs yet
Change-Id: If769b402a7b00ed3aebedd5f4d0954831a0ee905
2013-04-29 15:34:08 +02:00
880e7a81ff comm: ignore SIGPIPE
This prevents client and server from being sent a SIGPIPE (and
terminating) when the other side unexpectedly closes the connection.
It's way easier to handle this condition when checking the write()
return value, than to do anything smart in a SIGPIPE handler.  More
details:
<http://stackoverflow.com/questions/108183/how-to-prevent-sigpipes-or-handle-them-properly>

Change-Id: I1da5bf5ef79c8b7b00ede976e96ed4f1c560049d
2013-04-29 15:32:12 +02:00
091e8dcae0 ecos: baseline assessment integrated into main experiment
Change-Id: Iaf2a31c917b6ddd50568e5fb784ab8457193ee7d
2013-04-29 14:15:53 +02:00
403886e541 ecos: minor changes, cleanup
- Count experiments, not jobs
 - Debug output

Change-Id: Ide5e1219cdcc8112d1a0d4e7367beca2dd5821ef
2013-04-29 14:15:51 +02:00
c0b36f6236 ecos: use new timer iface to record benchmark runtime
... instead of the previous TimerListener workaround.

Change-Id: I3e712540e93b668301f50ecf4f5a5760e0a8fdb3
2013-04-29 14:15:49 +02:00
0887a53d1d ecos: campaign rewrite for MySQL data store
We're not yet using the common DatabaseCampaign as it doesn't allow
for additional experiment parameters (such as "variant" and
"benchmark") yet.  TODO: Integrate changes in DatabaseCampaign in a
generic way and use it.

Change-Id: I45480003be433654aea8d3a417fbfa66be31155b
2013-04-29 14:15:44 +02:00
392a6e6eb8 core/sal: correct timer ticks/sec calculation
Change-Id: I0971fe8a21c9ed3415d98b5e6387299beb3121e6
2013-04-29 14:15:36 +02:00
33c0584dda gem5: revisited breakpoint implementation
Now, the gem5 implementation equals the Bochs variant. Note that it's
*not* necessary to enable CONFIG_EVENTS_BREAKPOINTS_RANGE in order to
use range breakpoints.
In addition, gem5 distinguishes between macro- and microops. With the
new implementation, onBreakpoint() is only called when a macroop
changes.

Change-Id: Ib86d1802fc70c20d22ca1a1ece0e8d1221b2e7db
2013-04-29 13:23:58 +02:00
923ba362fa experiments/kesorefs: convert to DatabaseCampaign
Change-Id: I7607911c28ffb2427681db241ac721f1ae2c002a
2013-04-28 12:52:17 +02:00
2753a165ba ElfReader: Add support for getting a section iterator
Change-Id: I6241ea2de9da1a1e709fae6374df4fc06ef26aaa
2013-04-28 12:51:59 +02:00
11d9690a67 Typos in BochsController.hpp fixed
Change-Id: Ib94d63707fdeb3e0dc77cccd3ffde04df25329c2
2013-04-28 12:51:33 +02:00
f364024cba Typos in BochsController.hpp fixed
Change-Id: Ib94d63707fdeb3e0dc77cccd3ffde04df25329c2
2013-04-23 14:34:27 +02:00
2910e8462e Merge "Removed OVP-related (source) files/code (backend discarded)." 2013-04-23 14:27:02 +02:00
0f16f18d75 cosmetics
Change-Id: Ifae805ae1e2dac95324e054af09a7b70f5d5b60c
2013-04-22 14:24:02 +02:00
03bcf7bfc8 Removed OVP-related (source) files/code (backend discarded).
Change-Id: Ibf8065d9fe760640e5744896b764f9ebb6d2fa69
2013-04-10 15:16:46 +02:00
2d45a2c52c ecos: use MemoryMap materialization instead of own code
Change-Id: I8615a066c53e1d6a02c78bce3199fa1f73edfda9
2013-04-10 13:01:04 +02:00
4d03b7ce5c core/util: MemoryMap learns to materialize in files
Change-Id: I003168d3718491524db91b9f7d855d6b3428961c
2013-04-10 13:01:03 +02:00
e5fe9dd525 core/sal: interface for backend-specific notion of time
This adds an interface for a backend-specific notion of time, e.g. CPU
cycles since simulator start, and a concrete implementation for the
Bochs backend.  This is needed to record CPU idle times (e.g., HLT
instruction), and for target backends capable of more timing-accurate
execution.

This change also modifies the tracing plugin to add the time to all
trace events.

Change-Id: I93ac1d54c07f32b0b8f84f333417741d8e9c8288
2013-04-10 13:00:49 +02:00
6b5728ece1 Merge "gem5 build system improved" 2013-04-09 14:16:12 +02:00
d7a3a28431 ecos: split valid mem access range
When eCos is built as a multiboot binary, some of its data structures
are still at very low (<<1M) addresses, but the rest moves to
addresses >1M.  This change makes sure our invalid mem access
detection is not overly generous.

Change-Id: If8265a407b3706a4ff71562b316e05aa22255f62
2013-04-09 13:16:13 +02:00
08febe5819 gem5 build system improved
Encapsulated gem5-specific code into wrapper functions to separate the
build process (Fail: CMake, gem5: scons). Added some gem5-related FIXMEs.

Another CMake related FIXME added. +some cosmetics.

Change-Id: Id84b480127b1f13aed6a0ee97f3583f410d531c5
2013-04-08 17:57:06 +02:00
001d036613 ecos: ignore VGA mem accesses
Ignore VGA mem accesses for valid address range detection.

Change-Id: I4a85b6d4a2de52ecbd977d2dba474df818710600
2013-04-06 18:59:12 +02:00
0654967f39 A small hint about the current trap-handler impl. in gem5
Change-Id: Ia8c80152bc0eb0f032e7ddfbfa2fd9b246e34697
2013-04-03 16:55:33 +02:00
a328a21887 Renamed x86- and ARM-specific source files (for improved readability).
Updated include paths and CMake config appropriately

Change-Id: Ida5045cde0458b3031e64b73853fe5f58ef5a9d6
2013-04-03 16:46:51 +02:00
a0293b9d18 ecos: use commandline parameters for local test runs, too
Change-Id: Iac43732408420a9e3687d5756c942c2f2256ad86
2013-04-03 15:18:08 +02:00
373c19dd68 ecos: store traceinfo.txt in correct location
This commit completes the change introduced in commit
59e5fd3169.

Change-Id: I0a6ab7b35fbb69cbb8ef91e187b0d0bc32d01071
2013-04-03 15:18:08 +02:00
74bd3e99e5 Merge "sal/bochs: strict-aliasing warning removed" 2013-04-03 13:14:44 +02:00