Commit Graph

59 Commits

Author SHA1 Message Date
014684ae1c L4Sys: check Bochs AS ID for mem accesses, too
Change-Id: Ifa2b38dc0e762ff4f956dc0b98c78b43f0d139cb
2013-09-12 20:29:08 +02:00
ff19bec52d L4Sys: some bug fixes
* Fowler's Law of Refactoring: Have test cases available.
* BjoernD's Corollary to Fowler's Law: Use these tests!

Change-Id: I3d3e48ffe08209891c6204655323cd26a0eaaebd
2013-09-12 18:19:04 +02:00
b7d03f64d4 docs
Change-Id: Ic46dfc6c59c7bee796c2e3e8e97376859391b342
2013-09-11 18:02:03 +02:00
560860cb99 L4Sys: consult instruction list for breakpoints
Change-Id: Ic8163cc84bad9b0074a9d6489127d0ef09eb3c21
2013-09-11 18:02:03 +02:00
8caa63397a L4Sys: refactoring
* more more stuff into functions
* try to have generic experiment code only once

Change-Id: I4f037bd972243665a10941fcc3607f015b0bb1f9
2013-09-11 18:02:02 +02:00
0b2ab41c2f first working mem experiment
Change-Id: I928ee0c38f12f6dfe3f661ee60cccad11f35ad6a
2013-09-11 18:02:02 +02:00
20a9904032 start memory experiment
Change-Id: Ice7921a02f899c7381d15ead10b27e21df7019fb
2013-09-11 18:02:02 +02:00
60bf0bae69 L4Sys: uhoh -> build fix
Change-Id: I9b3f9bdc961d03e49965230f9a5222d4103c94c5
2013-09-10 11:58:23 +02:00
0c0f19fbcb L4Sys: also trace memory accesses
Change-Id: I20d8fea1f0f6cfee42804296515e50fdabf12f81
2013-09-10 11:54:05 +02:00
1ca9cb4a52 L4Sys: adapt to DatabaseCampaign
Change-Id: Ia4912e7a74afccb51f6d704830a2d9c5b5c0159a
2013-08-30 16:06:15 +02:00
2a06b97480 Adjust instruction tracing
write a trace file that can be input to the *-trace FAIL tools

Change-Id: Iaa13fab5bcba86f3d940831d9ea583a458998191
2013-08-28 10:16:13 +02:00
674af5fd00 Separate boundaries for output tracing and injection
* L4SYS_FUNC_{ENTRY,EXIT} now determines the range upon
  which an experiment is run. These instructions produce the
  output that is relevant for the experiment.

* L4SYS_FILTER_{ENTRY,EXIT} determine a subset of the
  above instructions. FI experiments are performed on this
  subset (between first occurrence of FILTER_ENTRY and first
  occurrence of FILTER_EXIT inclusively).

Change-Id: I37d2189d8256b6b707a0a33984f2b2656071d983
2013-08-27 20:34:57 +02:00
10420938d2 Rework instruction filtering
Add a new instruction filter that allows filtering a list of
ranges read from a file. This allows us to specify multiple
ranges, e.g., to leave out instructions or to focus on multiple
functions

Change-Id: Iba13cda00d0a73edaef270b3cd9100afe3e4668b
2013-08-27 11:26:27 +02:00
da7f9caf64 L4-sys refactoring
move preparation steps into separate functions

Change-Id: I4930ec38f003302596f215a08cd8bf455f525571
2013-08-27 10:02:38 +02:00
ed772429f9 L4Sys: fix use of L4SYS_NUMINSTR
* L4SYS_NUMINSTR counts the instructions that were selected for
  injection and is used by the campaign server to generate experiments
* L4SYS_TOTINSTR counts the total number of instructions executed.
  It is used by the experiment to determine the timeout value.

Change-Id: Ibf37aea2a1f5ad5afad2b1232ce22fe070b08490
2013-08-09 14:59:45 +02:00
125914a305 BochsRegister.hpp and BochsRegisterIDs.hpp not needed anymore
The includes of these headers have already been removed from the experiments. In the current code, the content of the header BochsRegister.hpp is rather simply copied to x86/Architecture.hpp. It is therefore necessary to revisit the code soon (especially the FIXME related to register IDs).

Another problem is that there is no generalization of register IDs. Thus, all experiments are currently specific to a concrete architecture (which is not desired).

git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@2010 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2013-01-17 13:41:23 +00:00
f936b77083 Fixed a bug in ALUInstr and improved logging for RATFlip
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1991 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2013-01-08 09:26:11 +00:00
2547021e5d - introduced improved logging in RATFlip
- adapted the manual
- centralised output conversion


git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1988 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-12-24 12:55:20 +00:00
5b07b4d312 Adapted experiment to new framework
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1987 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-12-22 19:33:50 +00:00
378cabd996 Updated the manual, corrected some terms and found a bug
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1970 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-12-06 14:47:42 +00:00
e130c204aa the injection offset in IDCFlip is now completely left aligned
(instead of bytewise left aligned and bitwise right aligned)


git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1959 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-11-27 16:59:05 +00:00
158ac496fe Adapted comment to the new TimerListener interface
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1957 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-11-24 09:48:31 +00:00
hsc
5135c79c05 TimerListener: microsecond granularity (ms is too coarse)
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1952 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-11-23 15:35:08 +00:00
ee24acd085 Forgot something
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1949 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-11-22 20:38:50 +00:00
86fd2abede Completed the terminate() method
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1948 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-11-22 20:36:31 +00:00
431678eabf Bugfix in the server, so the destructor now works
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1947 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-11-21 15:02:47 +00:00
a1e99f9004 Pointers back in - this solution seems to work for now
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1937 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-11-20 13:25:59 +00:00
6d340113cd The pointer structure caused weird server errors, so I will
only maintain it for the methods to avoid unnecessary parameters.


git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1936 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-11-20 11:11:43 +00:00
4db7272e5f Two minor bugfixes
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1935 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-11-20 09:58:44 +00:00
1b5bbba0e5 Handled a kind of wicked error case which nevertheless happens quite frequently
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1917 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-11-11 11:37:08 +00:00
cb3775b290 Ensuring parsability in case of exceptions
by removing unnecessary newline characters


git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1874 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-11-01 13:28:52 +00:00
1423fb93dd Removed instruction vector to reduce memory consumption
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1873 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-11-01 09:23:45 +00:00
ccc4aca728 Forgot to cast the type
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1866 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-30 11:09:59 +00:00
22634f6103 Minor bugfix
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1865 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-30 10:59:27 +00:00
7ae8b6b09d Introduces instruction filtering, e.g. to filter for kernel instructions
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1864 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-30 09:14:33 +00:00
5f0212aced Removed unnecessary debugging elements
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1744 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-14 08:46:39 +00:00
111cf2dc97 Bugfix for ALUInstr
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1743 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-13 22:02:09 +00:00
765a2326e3 Fixes the address space recognition which was broken by accident,
and cleans up the nomenclature to avoid future mistakes.


git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1737 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-11 14:27:41 +00:00
b15f5d79ac Handles a bound I forgot
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1735 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-11 10:51:07 +00:00
4d48e0207e Some improvements in the UDIS86 wrapper
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1730 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-08 08:33:28 +00:00
6d4a8cad6b Update the instruction pointer in RATFlip
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1729 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-07 21:07:13 +00:00
ba2c0bb83f Corrected several bugs in RATFlip
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1728 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-07 19:36:31 +00:00
225db6865e Restore state before 2nd preparation step
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1725 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-05 13:22:00 +00:00
37f030b9a3 Enhanced logging in ALUInstr
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1723 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-05 12:02:39 +00:00
42a75fa128 Documentation / corrected Bochs timer
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1718 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-05 09:41:41 +00:00
8a902d2b50 Some Bugfixes
ALUInstr should work now


git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1710 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-03 15:02:22 +00:00
fd102c01ea Important bugfix: passing the instruction cache entry pointer
does not account for arrays of instructions provided
by one virtual instruction trace cache entry ->
passing the current instruction directly.
ALUInstr not yet completely tested.


git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1704 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-01 17:51:34 +00:00
036aa95d4f Minor improvements in L4Sys
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1594 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-09-05 11:58:33 +00:00
ea1c9f5716 First steps to integrate the fourth experiment type, still debugging
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1587 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-09-02 17:17:39 +00:00
d9b24a7c60 Changes I made in the l4-sys experiment recently, plus one minor style fix
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1584 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-09-01 16:05:22 +00:00