gem5/src
Andreas Sandberg e5dca84c3f config: Move CPU handover logic to m5.switchCpus()
CPU switching consists of the following steps:
 1. Drain the system
 2. Switch out old CPUs (cpu.switchOut())
 3. Change the system timing mode to the mode the new CPUs require
 4. Flush caches if switching to hardware virtualization
 5. Inform new CPUs of the handover (cpu.takeOverFrom())
 6. Resume the system

m5.switchCpus() previously only did step 2 & 5. Since information
about the new processors' memory system requirements is now exposed,
do all of the steps above.

This patch adds automatic memory system switching and flush (if
needed) to switchCpus(). Additionally, it adds optional draining to
switchCpus(). This has the following implications:

* changeToTiming and changeToAtomic are no longer needed, so they have
  been removed.

* changeMemoryMode is only used internally, so it is has been renamed
  to be private.

* switchCpus requires a reference to the system containing the CPUs as
  its first parameter.

WARNING: This changeset breaks compatibility with existing
configuration scripts since it changes the signature of
m5.switchCpus().
2013-02-15 17:40:08 -05:00
..
arch arm: fix some fp comparisons that worked by accident. 2013-02-15 17:40:08 -05:00
base ruby: replace Time with Cycles in Message class 2013-02-10 21:26:24 -06:00
cpu cpu: Make checker CPUs inherit from CheckerCPU in the Python hierarchy 2013-02-15 17:40:08 -05:00
dev dev: Fix infinite recursion in DMA devices 2013-01-07 16:56:39 -05:00
doc MEM: Put memory system document into doxygen 2012-09-25 11:49:41 -05:00
doxygen MEM: Put memory system document into doxygen 2012-09-25 11:49:41 -05:00
kern base: Encapsulate the underlying fields in AddrRange 2013-01-07 13:05:38 -05:00
mem Ruby: Fix compilation errors on gcc 4.7 and clang 3.2 2013-02-14 12:24:51 -05:00
proto scons: Address clang 3.2 compilation error 2013-01-14 10:23:56 -05:00
python config: Move CPU handover logic to m5.switchCpus() 2013-02-15 17:40:08 -05:00
sim sim: remove unused struct priority_compare 2013-01-31 21:26:29 -06:00
unittest AddrRange: Transition from Range<T> to AddrRange 2012-09-19 06:15:44 -04:00
Doxyfile Doxygen: Update the version of the Doxyfile 2012-10-11 06:38:42 -04:00
SConscript scons: Remove stale compiler options 2013-01-07 13:05:39 -05:00