gem5/util
Andrew Bardsley e5e5b80690 config: Fix to SystemC example's event handling
This patch fixes checkpoint restore in the SystemC hosting example by handling
early PollEvent events correctly before any EventQueue events are posted.

The SystemC event queue handler (SCEventQueue) reports an error if the event
loop is entered with no Events posted.  It is possible for this to happen
after instantiate due to PollEvent events.  This patch separates out
`external' events into a different handler in sc_module.cc to prevent the
error from occurring.

This fix also improves the event handling of asynchronous events by:

    1) Making asynchronous events 'catch up' gem5 time to SystemC
        time to avoid the appearance that events have been lost
        while servicing an asynchronous event that schedules an
        event loop exit event

    2) Add an in_simulate data member to Module to allow the event
        loop to check whether events should be processed or deferred
        until the next time Module::simulate is entered

    3) Cancel pending events around the entry/exit of the event loop
        in Module::simulate

    4) Moving the state initialisation of the example entirely into
        run to correct a problem with early events in checkpoint
        restore.

It is still possible to schedule asynchronous events (and talk PollQueue
actions) while simulate is not running.  This behaviour may stil cause
some problems.
2014-12-02 06:08:09 -05:00
..
batch python: Move various utility classes into a new m5.util package so 2008-06-14 20:19:49 -07:00
ccdrv includes: sort all includes 2011-04-15 10:44:06 -07:00
cxx_config config: Fix checkpoint restore in C++ config example 2014-11-14 03:54:02 -05:00
emacs Make the M5 Emacs C style default to inserting spaces instead 2006-01-30 14:32:00 -05:00
m5 kvm, x86: Adding support for SE mode execution 2014-11-23 18:01:08 -08:00
minorview cpu: `Minor' in-order CPU model 2014-07-23 16:09:04 -05:00
pbs python: Move various utility classes into a new m5.util package so 2008-06-14 20:19:49 -07:00
statetrace ARM: Add vfpv3 support to native trace. 2011-05-04 20:38:26 -05:00
stats stats: fix usage of jobfile 2009-07-02 16:48:21 -07:00
streamline config: Update Streamline scripts and configs 2014-09-03 07:43:02 -04:00
systemc config: Fix to SystemC example's event handling 2014-12-02 06:08:09 -05:00
tap includes: sort all includes 2011-04-15 10:44:06 -07:00
term includes: sort all includes 2011-04-15 10:44:06 -07:00
checkpoint-tester.py util: add a script for testing checkpointing 2010-07-05 21:39:38 -07:00
checkpoint_aggregator.py util: update checkpoint aggregation script 2013-12-03 10:36:03 -06:00
checktrace.sh Add checktrace.sh. Checks all the ethertrace files in */ethertrace 2005-11-11 18:43:09 -05:00
chkformat Utilities for doing a format check for some elements of proper 2006-12-17 18:58:05 -08:00
compile Nate's utility for compiling m5 2006-12-17 18:58:50 -08:00
cpt_upgrader.py util: Add DVFS perfLevel to checkpoint upgrade script 2014-07-01 11:58:22 -04:00
cscope-index.py cscope-find.py: 2006-11-29 13:17:41 -08:00
decode_packet_trace.py util: Move packet trace file read to protolib 2014-08-10 05:39:20 -04:00
diff_config.pl Util: Added script to semantically diff two config.ini files 2012-09-25 11:49:40 -05:00
dram_sweep_plot.py mem: Add utility script to plot DRAM efficiency sweep 2014-09-03 07:42:29 -04:00
drampower_trace.py mem: DRAMPower trace formatting script 2014-06-30 13:56:04 -04:00
encode_packet_trace.py mem: Edit proto Packet and enhance the python script 2014-03-07 15:56:23 -05:00
file_types.py file_types: Make code work in Python 2.4 2011-04-17 13:57:03 -07:00
find_copyrights.py copyright: Add code for finding all copyright blocks and create a COPYING file 2011-06-02 17:36:07 -07:00
fixwhite Utilities for doing a format check for some elements of proper 2006-12-17 18:58:05 -08:00
gem5img.py Util: Replace mkblankimage.sh with the new gem5img.py. 2011-04-29 04:46:19 -04:00
hgfilesize.py hgfilesize: skip files that have been removed 2012-01-10 22:50:54 -08:00
minorview.py cpu: `Minor' in-order CPU model 2014-07-23 16:09:04 -05:00
o3-pipeview.py o3: fix tick used for renaming and issue with range selection 2013-02-15 17:40:09 -05:00
on-chip-network-power-area.py util: adds a script for using DSENT 2014-10-11 16:16:00 -05:00
oprofile-top.py Updated Authors from bk prs info 2006-05-31 19:26:56 -04:00
protolib.py util: Move packet trace file read to protolib 2014-08-10 05:39:20 -04:00
qdo Make qdo work with oar. I don't know if this catches every case, but it appears 2007-10-10 23:24:16 -04:00
regress ruby: rename MESI_CMP_directory to MESI_Two_Level 2014-01-04 00:03:33 -06:00
rundiff rundiff: Don't flush stdout until after postcontext is printed. 2009-09-26 10:50:50 -07:00
SConscript Major changes to how SimObjects are created and initialized. Almost all 2007-07-23 21:51:38 -07:00
slicc slicc: Pure python implementation of slicc. 2009-09-22 18:12:39 -07:00
sort_includes.py util: Fix state leakage in the SortIncludes style verifier 2014-08-13 06:57:25 -04:00
style.py style: Add support for a style ignore list and ignore ext/ 2014-08-26 10:14:30 -04:00
tracediff tracediff: Check for --debug-flags now instead of --trace-flags. 2011-07-02 22:52:26 -07:00
valgrind-suppressions util: Valgrind suppression addition 2014-04-23 05:18:29 -04:00