Commit Graph

118 Commits

Author SHA1 Message Date
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
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
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
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
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
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
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
781fbf1f4e elfreader: be less verbose
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1797 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-22 21:13:16 +00:00
hsc
0d1618746c sal/bochs: move register IDs to a separate file
This is necessary as a temporary fix: Currently, campaign code cannot use
Fail*'s architecture abstractions at all (e.g., we cannot iterate over all
existing GP registers).  Until this is corrected by separating a concrete
backend and architecture information (the latter being usable by a
campaign), we now at least can use register IDs.

git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1792 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-22 15:36:09 +00:00
hsc
a911ebb353 Revert "explicit aspect activation"
Unfortunately, this does not (yet) work as advertised.  I need to fight another
round of CMake battles before retrying.  Reverting to previous state for now.

This reverts r1753.

git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1767 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-19 09:45:00 +00:00
hsc
a29ad39f5e explicit aspect activation
ag++ is now called with a list of currently active aspect headers
(ag++ -a aspect1.ah -a aspect2.ah ...).  This resolves several problems at
once:
 -  Build directories may be positioned arbitrarily now, they need not be
    a subdirectory of the project anymore.
 -  Multiple build directories can coexist within the project tree.  Before
    this commit, the generated instantiate-*.ah aspect headers disturbed
    neighboring build trees.
 -  Due to this, the regression test should be runnable much more easily
    now.
 -  The build time was reduced by an average of about 10%.

git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1753 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-17 15:22:23 +00:00
hsc
6100472e1b redundant include
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1746 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-16 16:59:46 +00:00
bfedb10cac Starting support for Lauterbach T32 HW Debugger
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1740 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-11 15:25:51 +00:00
a00cd492db Overlooked that two parameters were mixed up
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1738 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-11 14:53:10 +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
6e1a85d3bf Added single stepping for gem5, which is necessary to periodically check for events like interrupts.
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1734 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-10 14:26:50 +00:00
15def480d9 warning-fix in release mode (var not initialized).
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1731 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-09 11:10:29 +00:00
171d178309 SimCon interface update: save returns a boolean, now (+ redundant virtual keywords removed).
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1724 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-05 12:12:56 +00:00
0c3568dc2f CoroutineManager: comment fix (deprecated).
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1722 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-05 11:56:39 +00:00
31aa3aa925 bugfixes in overall coroutine handling to allow the overwriting of onTrigger.
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1721 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-05 11:48:39 +00:00
32de9e174e Flag initialization is now based on actual simulator-selection.
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1720 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-05 11:44:40 +00:00
4ba6dfa5de Typo fix.
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1719 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-05 11:39:15 +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
0c3d365368 bugfix: Add BochsListener to CMakeLists, workaround for onTimerTrigger
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1717 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-04 15:38:56 +00:00
hsc
d1c6ad3469 missing perf/BreakpointBuffer for Gem5
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1716 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-04 15:30:03 +00:00
5b0d53a1ab do's and don't when overwriting onTrigger + typo-fix.
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1715 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-04 14:47:34 +00:00
2a35266ba7 Bugfix WallclockTimer
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1714 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-04 13:26:48 +00:00
28599c99d0 Listener handler revisited (onTrigger toggles the current flow), typo.
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1713 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-04 11:28:11 +00:00
2b79e83d72 Make it comile again with CONFIG_FAST_BREAKPOINTS enabled (avoid include cycle, see r1706), set timer id correctly (setId), coding-style + comment fix.
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1712 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-04 11:20:31 +00:00
4b8a417eda Added missing include of Listener.hpp in Gem5Controller.cc
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1709 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-02 12:58:45 +00:00
02279833aa WallclockTimer updated
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1708 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-02 12:53:33 +00:00
7d49b6f063 Simulator specific listener are now implemented using aspects instead of an additional inheritance level
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1706 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-10-02 11:42:18 +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
b07fa4dcb7 Listener objects will now be removed when their scope ends.
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1700 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-09-27 09:59:20 +00:00
2c1c3e8f02 TroubleListener::getWatchNumbers() returns a const ref (instead of a copy), now.
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1699 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-09-27 09:40:34 +00:00
00b16ae5d0 (Fail)Bochs bug documented in more detail: TimerListener cannot be added at boot time.
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1697 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-09-27 09:32:32 +00:00
01207617ba Removed residual m_tStamp member in BaseListener class (see r1637).
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1696 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-09-27 09:25:59 +00:00
38c39c902b WallclockTimer cleaned
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1695 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-09-25 17:20:32 +00:00
aa6ac5d119 WallclockTimer updated
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1694 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-09-25 17:16:22 +00:00
hsc
d45965753d bugfix: handle old clients properly
Fix 1: A result message with a nonexistent or invalid run ID must be
ignored in any case.  0 is only OK for NEED_WORK messages, clients
communicating a result must know the ID.

Fix 2: Tell the client the run ID in the first place ...

git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1692 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-09-25 16:14:22 +00:00
e55997e614 Removed remove(iterator) (no longer needed), m_remove() simplified.
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1688 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-09-25 12:39:06 +00:00
hsc
fb7a7ed849 bugfix: qemu compiles again
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1687 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-09-25 12:36:42 +00:00
057c216dc0 Removed BufferCache stuff (fast breakpoints will do the job, see r1685).
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1686 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-09-25 11:36:19 +00:00
0cb6b39490 Aspect-based implementation of fast breakpoints added (optional).
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1685 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-09-25 10:10:02 +00:00
hsc
7513dacad1 properly deal with clients that talked to another campaign server before
A campaign server now tells all clients a unique run ID (the UNIX timestamp
when it was started).  This allows us to ignore results from "old" clients
that talked to another server before, and to tell them to die.

git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1677 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-09-23 17:28:07 +00:00
63264b8075 WallclockTimer added
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1673 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-09-21 14:08:10 +00:00
hsc
c4899207af ovp: initialization aspect only enabled if OVP is built
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1641 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-09-13 21:27:09 +00:00