gem5/src
Timothy Jones 96091f358b uby: Fix checkpointing and restore
There are 2 problems with the existing checkpoint and restore code in ruby.
The first is that when the event queue is altered by ruby during serialization,
some events that are currently scheduled cannot be found (e.g. the event to
stop simulation that always lives on the queue), causing a panic.
The second is that ruby is sometimes serialized after the memory system,
meaning that the dirty data in its cache is flushed back to memory too late
and so isn't included in the checkpoint.

These are fixed by implementing memory writeback in ruby, using the same
technique of hijacking the event queue, but first descheduling all events that
are currently on it.  They are saved, along with their scheduled time, so that
the event queue can be faithfully reconstructed after writeback has finished.
Events with the AutoDelete flag set will delete themselves when they
are descheduled, causing an error when attempting to schedule them again.
This is fixed by simply not recording them when taking them off the queue.

Writeback is still implemented using flushing, so the cache recorder object,
that is created to generate the trace and manage flushing, is kept
around and used during serialization to write the trace to disk.

Committed by: Nilay Vaish <nilay@cs.wisc.edu>
2015-08-03 23:08:40 -05:00
..
arch x86: x86 instruction-implementation bug fixes 2015-07-20 09:15:18 -05:00
base base: Add serialization support to Pixels and FrameBuffer 2015-07-07 09:51:04 +01:00
cpu cpu: Fixed a bug on where to fetch the next instruction from 2015-07-20 09:15:18 -05:00
dev dev: add support for multi gem5 runs 2015-07-15 19:53:50 -05:00
doc cpu: `Minor' in-order CPU model 2014-07-23 16:09:04 -05:00
doxygen MEM: Put memory system document into doxygen 2012-09-25 11:49:41 -05:00
kern style: change Process function calls to use camelCase 2015-07-24 12:25:23 -07:00
mem uby: Fix checkpointing and restore 2015-08-03 23:08:40 -05:00
proto cpu: add support for outputing a protobuf formatted CPU trace 2015-02-16 03:32:38 -05:00
python sim: Decouple draining from the SimObject hierarchy 2015-07-07 09:51:05 +01:00
sim uby: Fix checkpointing and restore 2015-08-03 23:08:40 -05:00
unittest base: Redesign internal frame buffer handling 2015-05-23 13:37:03 +01:00
Doxyfile Doxygen: Update the version of the Doxyfile 2012-10-11 06:38:42 -04:00
SConscript scons: Bump compiler requirement to gcc >= 4.7 and clang >= 3.1 2015-07-03 10:14:15 -04:00