a26a155f0c
SynchronizedQueue: optional upper bound
...
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1944 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-11-20 15:01:55 +00:00
e409ae2f76
JobServer: synchronization issues
...
Synchronize re-sending jobs in sendPendingExperimentData() and modifying
(or indirectly, via getDone() and the campaign, deleting) jobs in the
m_runningJobs queue.
a) sendPendingExperimentData needs an intact job to serialize and send it.
b) After moving the job to m_doneJobs, it may be retrieved and deleted
by the campaign at any time.
Additionally, receiving a result overwrites the job's contents. This
already may cause breakage in sendPendingExperimentData (a).
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1943 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-11-20 15:01:52 +00:00
1d498a516b
JobServer: do not try to talk to a dying minion
...
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1942 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-11-20 15:01:49 +00:00
fa1875e2f2
#cmakedefine does not make sense for non-binary configuration options
...
For example,
#cmakedefine CLIENT_RETRY_COUNT @CLIENT_RETRY_COUNT@
undefines CLIENT_RETRY_COUNT if the value is set to 0 (which evaluates to
"false" in cmake).
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1941 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-11-20 15:01:46 +00:00
35026de2d8
ecos: use multiple intermediate states to speed up experiments (disabled)
...
This modification creates and uses multiple intermediate snapshot states
(one every 1,000,000 instructions) to fast-forward to the FI site.
Unfortunately this doesn't work yet; the trace seems to change in many (not
all!) cases we do this. One possible cause could be an incorrect
(off-by-one or alike?) restoration of the serial device timers, and
therefore an earlier/later transition to "output buffer empty", resulting
in eCos' serial putc function needing a different amount of polling loop
iterations. Needs more investigation.
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1940 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-11-20 15:01:43 +00:00
041746741d
ecos: include variant and benchmark in job info
...
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1939 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-11-20 15:01:40 +00:00
20fc14e6b3
ecos: result merging repaired
...
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1938 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-11-20 15:01:37 +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
49d1608969
correct sanity checks for client/server communication
...
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1933 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-11-14 13:31:53 +00:00
b8a4797360
doc: REP/REPZ/REPNZ done right
...
--enable-all-optimizations implicitly enables --enable-repeat-speedups.
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1932 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-11-13 16:27:07 +00:00
4f48eb3232
ecos: send mandatory ecos_test_result when sanity check fails
...
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1929 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-11-13 16:26:58 +00:00
4cce602bca
ecos: actually enqueue jobs
...
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1928 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-11-13 00:17:33 +00:00
7b3e5986d1
ecos: save experiment runtime
...
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1927 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-11-13 00:17:31 +00:00
077f7ea507
ecos: load existing results on campaign startup
...
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1926 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-11-13 00:17:28 +00:00
61ab977f01
bugfix: read(2) returns 0 on EOF
...
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1925 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-11-13 00:17:25 +00:00
97299ba370
util/WallclockTimer: (float) cast operator
...
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1924 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-11-13 00:17:22 +00:00
9decf95a09
ecos: specific traps are OK for two benchmarks
...
The "except1" and "clockcnv" benchmarks explicitly cause a trap and handle
it in their own trap handler. This, of course, isn't a bad experiment
outcome.
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1923 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-11-13 00:17:18 +00:00
a0e6ddd519
ecos: fault-space cutoff specific for this campaign
...
For the eCos kernel test campaign we define a relatively "special" metric
to compare FI results from different applications: Instead of aligning
the fault-space dimensions (e.g., by artificially adding "don't care" space
to the right for shorter application variants), we only keep the data
address axis constant. The rationale behind this is that -- despite the
benchmark applications' run-to-completion behavior -- an operating system's
scheduler usually runs ad infinitum, and that we therefore can extrapolate
from a short application run to any longer period.
In essence, this means we use a failure/experiment-length quotient (ignoring
the Y axis for simplicity, as it is constant in size) to compare
application variants, instead of an absolute failure count. One important
side effect is that we do not punish any application slowdown with this
metric. (And simply prolongating non-susceptible program sections with,
e.g., NOPs, seemingly "improves" fault tolerance.)
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1922 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-11-12 13:55:45 +00:00
6f98d64613
bugfix: racecondition removed
...
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1921 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-11-12 11:46:26 +00:00
464bc9390b
ecos: campaign rewritten
...
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1920 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-11-12 10:59:35 +00:00
a02088b33e
enable support for large (>2G) files
...
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1919 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-11-12 10:59:32 +00:00
283d946295
ecos: no need for experimentInfo.hpp.sh anymore
...
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1918 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-11-12 10:59:28 +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
35b1d0203e
CampaignManager: destructor / cleanup
...
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1916 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-11-10 16:18:40 +00:00
86ba9cb377
CampaignManager: only instantiate JobServer when needed
...
As we have a global CampaignManager instance in the fail-cpn library, a
JobServer member variable is not such a good idea. Essentially, we started
all JobServer threads (which is done in its constructor) within a
fail-client before this commit.
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1915 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-11-10 16:14:06 +00:00
4957cfb71b
ecos: remove hard-coded trace filename
...
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1913 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-11-10 16:13:59 +00:00
0ab4f12b7c
ecos: no need for clearListeners anymore
...
Since r1700, listeners remove themselves when they leave their scope.
A restore() call also implicitly clears all listeners.
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1912 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-11-09 15:37:33 +00:00
661563125e
ecos: cosmetics / compiler warning
...
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1910 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-11-09 15:37:27 +00:00
1292b66043
ecos: image/prerequisite/result path naming changes
...
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1909 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-11-09 15:37:24 +00:00
c2242f2bb4
ecos: guest-image independent fail client
...
TODO: campaign needs to be updated, too
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1908 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-11-09 15:37:21 +00:00
805f67e23c
ElfReader: return ADDR_INV instead of (signed) -1 on failure
...
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1907 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-11-09 15:37:18 +00:00
a26aeb52ee
ecos: preparations for guest-image independent fail client
...
Additional change: prerequisite data files are not opened in append mode
anymore. These files can be easily reproduced, and append mode does more harm
than good here.
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1906 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-11-09 15:37:14 +00:00
bbf7731aa2
fast-watchpoints: implementation finished (and tested).
...
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1900 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-11-08 13:36:08 +00:00
ddbab2e903
build-system: separated fast-breakpoints, added fast-watchpoints.
...
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1899 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-11-08 13:35:22 +00:00
4a6b576b18
fast-breakpoints: created template class DefPerfVector, realizing the buffer interface. Modified PerfVectorBreakpoints appropriately.
...
This is useful to reuse the DefPerfVector class for fast-watchpoints, too.
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1898 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-11-08 13:18:40 +00:00
148b0bb483
fast-breakpoints: work even if fast-watchpoints are enabled (TODO removed).
...
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1897 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-11-08 13:07:02 +00:00
5648093ffe
fast-breakpoints: use explicit namespace qualifier in aspect header.
...
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1896 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-11-08 13:05:05 +00:00
e337fef205
perf-test: further results added
...
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1895 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-11-08 12:59:43 +00:00
2eb18c81ac
perf-test: code improved.
...
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1894 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-11-08 12:59:16 +00:00
126fb1a1ff
ecos_kernel_test: remove 2nd reboot (which was just before a restore)
...
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1889 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-11-07 16:01:35 +00:00
4cef94a016
Removed the recommendation of repeat-speedups to avoid misunderstandings (see revision 1885)
...
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1888 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-11-07 09:02:12 +00:00
9c3755363b
bochs bugfix: store the timer ID for correct deregistration
...
Over a few indirections, this broke Bochs' 16550 UART simulation after
transferring a few hundreds of bytes. The UART uses internal timers to
simulate the configured baud rate; these timers cease to work after
repeated misuse from the Fail/Bochs bridge.
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1887 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-11-06 18:29:45 +00:00
1668e21ce1
bochs: removed preprocessor nonsense
...
It doesn't make sense to let timer (de)registration depend on
CONFIG_EVENT_BREAKPOINTS.
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1886 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-11-06 18:29:41 +00:00
1f8dfd01e9
bochs: trace REP/REPZ/REPNZ iterations
...
This allows single-stepping through REP/REPZ/REPNZ iterations. We mainly
need this for a little more realistic timing model when, e.g., copying
large memory areas with REP MOVSB.
Be aware that memory-access tracing only works reliably for REPxx-prefixed
instructions if Bochs was configured with --disable-repeat-speedups, as
this Bochs optimization completely circumvents the usual memory access
paths.
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1885 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-11-06 15:43:24 +00:00
0b8710872b
Removed BochController debug stuff. Merged: BochsController::onBreakpoint -> SimCon::onBreakpoint.
...
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1883 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-11-06 11:40:05 +00:00
b7bbcd389f
ecos_kernel_test: record error detected/corrected
...
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1882 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-11-06 10:51:41 +00:00
9e5de7b14a
ecos_kernel_test bugfix: timer granularity of 10s is way too coarse
...
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1877 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-11-02 16:59:07 +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