Commit Graph

493 Commits

Author SHA1 Message Date
hsc
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
hsc
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
hsc
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
chb
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
hsc
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
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
hsc
163be81874 rampage: final experiment parameters, for the records
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1872 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-31 15:07:01 +00:00
hsc
e1dcbece88 limit fail-client instances on "big" IRB servers by default
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1871 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-31 15:06:58 +00:00
4ec51b003a bugfix: WallclockTimer::operator<< must be inlined to prevent multiple defs.
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1869 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-31 12:42:48 +00:00
dd17034fce WallclockTimer: coding style unifications.
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1867 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-30 12:15:26 +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
247fed5aa7 Gem5: Implemented MemoryManager
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1863 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-28 23:50:08 +00:00
66fe662495 Gem5: functionalAccess() should not trigger memory access
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1862 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-28 23:50:06 +00:00
hsc
4a48b6c20c nanojpeg: deleting result sets after handling them is not racy
Deleting result sets after retrieving them from the "done" queue is /not/
racy.  This obviously was a misinterpretation of crashes with other
campaigns.

git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1861 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-27 23:18:27 +00:00
hsc
4e26205aef nanojpeg: count existing experiments and CSV rows
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1855 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-26 17:31:44 +00:00
hsc
8f39aa9717 nanojpeg: correct experiment count
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1854 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-26 17:31:41 +00:00
hsc
9038e7f603 increase pick window size for job reassignments
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1853 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-26 17:31:38 +00:00
hsc
720a59cfde runcampaign.sh uses start-clients.sh instead of duplicating code
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1852 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-26 17:31:35 +00:00
hsc
3353bad6c6 number of clients per CPU = 1
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1851 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-26 17:31:31 +00:00
hsc
3dcc684400 read(2)/write(2) wrappers for reliable delivery
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1850 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-26 16:13:41 +00:00
hsc
55dd79cc03 cosmetics
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1849 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-26 16:13:36 +00:00
hsc
5a5367beee nanojpeg: complete fault-space coverage by closing ECs in the end
As we don't know what happens after the "right margin" of the specified
fault space (specified by trace length, or an explicit instruction limit),
we need to do one FI experiment for every register/bit in the end.

git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1847 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-26 14:27:35 +00:00
hsc
05217d77d9 nanojpeg: more thorough output address check
This prevents the experiment trying to read from invalid guest-system
addresses.

git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1846 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-26 14:27:32 +00:00
34d89000cf ecos_kernel_test: simplification (no need to call clearListeners() here).
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1843 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-25 15:52:55 +00:00
e8f715f8af comment-fix (not comprehensible this way)
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1842 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-25 15:51:20 +00:00
6b1f457662 bugfix: onDeletion() cannot be called on listeners in the fire-list. (+ simplified makeActive().)
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1841 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-25 15:49:25 +00:00
12f3550428 Reboot-test optimized
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1833 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-25 12:39:09 +00:00
1eb8ac6870 Bugfix: missing header added
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1832 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-25 12:36:56 +00:00
hsc
22cd362cc7 gem5: only enable Gem5Listener.ah when building gem5
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1825 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-24 23:40:10 +00:00
hsc
14ca377a85 nanojpeg: run 200 experiments, not 50 jobs
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1824 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-24 22:35:49 +00:00
hsc
bd3bef1f72 nanojpeg: load existing results before starting campaign
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1823 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-24 22:35:46 +00:00
hsc
4fb768972b nanojpeg: allow CSV output to be buffered
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1822 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-24 22:35:43 +00:00
hsc
6c204d2a93 don't distribute to lidong by default
We currently need to apply extra care before deploying Fail* jobs on the
Lido-NG cluster.

git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1821 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-24 22:32:05 +00:00
e0e95faa5b Restructured the gem5 backend:
- FailGem5Device is gone.
- There are now changes directly made to the gem5 source.
- Gem5Connector is a helper class that is compiled inside the gem5 context to workaround problems with gem5 header in fail.

Things that are working:
- BPSingleListener
- MemAccessListener
- Save and restore simulator state

git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1820 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-24 19:19:14 +00:00
b41eec3f65 Adding gem5 source to svn.
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1819 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-24 19:18:57 +00:00
hsc
f7ff71bd46 Revert "ListenerManager bugfix (segfault): [...]"
This commit *introduced* a segfault to the nanojpeg experiment.  Indeed there is
no point in clearing m_FireList here:

 1. Multiple active listeners match an event coming from the simulator.  These
    listeners are moved from their queue to m_FireList.
 2. In a loop iterating over m_FireList, one of the listeners is triggered
    (ListenerManager::triggerActiveListeners()).  Context switches to an
    experiment.  The experiment explicitly (or implicitly, e.g., by terminating)
    calls simulator.clearListeners().
 3. ListenerManager::remove() clears all active (but not currently fired, or
    about to be fired) listeners from the main listener queue (and additionally
    all type-specific special containers).  To prevent the "about to be fired"
    listeners to fire, they are copied to m_DeleteList.
 4. The loop mentioned in 2. does not trigger any listener mentioned in
    m_DeleteList.  Afterwards, m_FireList (and m_DeleteList) is cleared.

Clearing m_FireList in step 3 invalidates the iterator used in the loop from
steps 2 and 4.  In fact, this problem was the reason we introduced the
m_DeleteList workaround in the first place.

This reverts commit r1817.

git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1818 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-24 15:40:57 +00:00
8588617a86 ListenerManager bugfix (segfault): clear fire-list when clearListener() is called (this revealed a bug in reboot() which needs to be fixed too).
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1817 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-24 13:42:05 +00:00
hsc
4dcee177be nanojpeg: receive/store results, merge identical neighbors
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1816 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-24 09:58:59 +00:00
hsc
554d80139a nanojpeg: timeout reduced, instructions limited (temporarily)
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1815 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-24 09:58:56 +00:00
hsc
f61db1ff39 nanojpeg: psnr is optional
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1814 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-24 09:58:53 +00:00
hsc
1585b4a614 nanojpeg: signedness fixes
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1813 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-24 09:58:50 +00:00
hsc
8808eabc3c bugfix: multiple CMAKE_AGPP_FLAGS
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1812 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-24 09:58:48 +00:00
hsc
bb621aac82 nanojpeg: uint32_t for IPs in protobuf message
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1811 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-24 09:58:45 +00:00
hsc
3de22e1b10 nanojpeg: count both jobs and single experiments
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1810 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-24 09:58:42 +00:00
hsc
2b1e4edd6b nanojpeg: store known-outcome results, enqueue jobs
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1809 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-24 09:58:39 +00:00
hsc
892e5f86f0 nanojpeg: use absolute IP from trace
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1808 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-24 09:58:36 +00:00