Standard Switch: Drain the system before switching CPUs
When switching from an atomic CPU to any of the timing CPUs, a drain is unnecessary since no events are scheduled in atomic mode. However, when trying to switch CPUs starting with a timing CPU, there may be events scheduled. This change ensures that all events are drained from the system by calling m5.drain before switching CPUs.
This commit is contained in:
parent
16dcb723c1
commit
234fa4cf7e
2 changed files with 2 additions and 2 deletions
|
@ -453,6 +453,7 @@ def run(options, root, testsys, cpu_class):
|
|||
# manually. You DON'T need to resume after just switching
|
||||
# CPUs if you haven't changed anything on the system level.
|
||||
|
||||
m5.doDrain(testsys)
|
||||
m5.changeToTiming(testsys)
|
||||
m5.switchCpus(switch_cpu_list)
|
||||
m5.resume(testsys)
|
||||
|
@ -469,7 +470,7 @@ def run(options, root, testsys, cpu_class):
|
|||
print "Switching CPUS @ tick %s" % (m5.curTick())
|
||||
print "Simulation ends instruction count:%d" % \
|
||||
(testsys.switch_cpus_1[0].max_insts_any_thread)
|
||||
m5.drain(testsys)
|
||||
m5.doDrain(testsys)
|
||||
m5.switchCpus(switch_cpu_list1)
|
||||
m5.resume(testsys)
|
||||
|
||||
|
|
|
@ -203,7 +203,6 @@ def changeToTiming(system):
|
|||
(type(system), objects.Root, objects.System)
|
||||
|
||||
if system.getMemoryMode() != objects.params.timing:
|
||||
doDrain(system)
|
||||
print "Changing memory mode to timing"
|
||||
for obj in system.descendants():
|
||||
obj.changeTiming(objects.params.timing)
|
||||
|
|
Loading…
Reference in a new issue