diff options
author | Gabe Black <gblack@eecs.umich.edu> | 2007-08-04 20:27:23 -0700 |
---|---|---|
committer | Gabe Black <gblack@eecs.umich.edu> | 2007-08-04 20:27:23 -0700 |
commit | cae8d20633c0f43fdae23576adfb894284a7ee86 (patch) | |
tree | e9e232684d7fc024900d8a07d6b8a3add1f52e92 /src/python | |
parent | 30e777a5d3829975266ecccac965d2297a5f4985 (diff) | |
parent | df015f17a45b18302565c43d3790d787e1b54c42 (diff) | |
download | gem5-cae8d20633c0f43fdae23576adfb894284a7ee86.tar.xz |
Merge with head.
--HG--
extra : convert_revision : 3edb9f03353b18b4c9f062bccf11e79cfb3c15f2
Diffstat (limited to 'src/python')
-rw-r--r-- | src/python/generate.py | 2 | ||||
-rw-r--r-- | src/python/m5/__init__.py | 1 | ||||
-rw-r--r-- | src/python/m5/simulate.py | 45 |
3 files changed, 17 insertions, 31 deletions
diff --git a/src/python/generate.py b/src/python/generate.py index 99d0fb68c..6b167552e 100644 --- a/src/python/generate.py +++ b/src/python/generate.py @@ -270,7 +270,7 @@ class Generate(object): enums = list(enums) enums.sort() for enum in enums: - print >>out, '%%import "enums/%s.hh"' % enum.__name__ + print >>out, '%%include "enums/%s.hh"' % enum.__name__ print >>out for obj in ordered_objs: diff --git a/src/python/m5/__init__.py b/src/python/m5/__init__.py index 96cb2ca13..f21bb362e 100644 --- a/src/python/m5/__init__.py +++ b/src/python/m5/__init__.py @@ -92,6 +92,7 @@ if running_m5: from event import * from simulate import * from main import options + import stats import SimObject import params diff --git a/src/python/m5/simulate.py b/src/python/m5/simulate.py index c703664d4..6c70d8fbd 100644 --- a/src/python/m5/simulate.py +++ b/src/python/m5/simulate.py @@ -148,53 +148,38 @@ def changeToAtomic(system): if not isinstance(system, (objects.Root, objects.System)): raise TypeError, "Parameter of type '%s'. Must be type %s or %s." % \ (type(system), objects.Root, objects.System) - if system.getMemoryMode() != objects.params.SimObject.Atomic: + if system.getMemoryMode() != objects.params.atomic: doDrain(system) print "Changing memory mode to atomic" - system.changeTiming(objects.params.SimObject.Atomic) + system.changeTiming(objects.params.atomic) def changeToTiming(system): if not isinstance(system, (objects.Root, objects.System)): raise TypeError, "Parameter of type '%s'. Must be type %s or %s." % \ (type(system), objects.Root, objects.System) - if system.getMemoryMode() != objects.params.SimObject.Timing: + if system.getMemoryMode() != objects.params.timing: doDrain(system) print "Changing memory mode to timing" - system.changeTiming(objects.params.SimObject.Timing) + system.changeTiming(objects.params.timing) def switchCpus(cpuList): print "switching cpus" if not isinstance(cpuList, list): raise RuntimeError, "Must pass a list to this function" - for i in cpuList: - if not isinstance(i, tuple): + for item in cpuList: + if not isinstance(item, tuple) or len(item) != 2: raise RuntimeError, "List must have tuples of (oldCPU,newCPU)" - [old_cpus, new_cpus] = zip(*cpuList) + for old_cpu, new_cpu in cpuList: + if not isinstance(old_cpu, objects.BaseCPU): + raise TypeError, "%s is not of type BaseCPU" % old_cpu + if not isinstance(new_cpu, objects.BaseCPU): + raise TypeError, "%s is not of type BaseCPU" % new_cpu - for cpu in old_cpus: - if not isinstance(cpu, objects.BaseCPU): - raise TypeError, "%s is not of type BaseCPU" % cpu - for cpu in new_cpus: - if not isinstance(cpu, objects.BaseCPU): - raise TypeError, "%s is not of type BaseCPU" % cpu - - # Drain all of the individual CPUs - drain_event = internal.event.createCountedDrain() - unready_cpus = 0 - for old_cpu in old_cpus: - unready_cpus += old_cpu.startDrain(drain_event, False) - # If we've got some objects that can't drain immediately, then simulate - if unready_cpus > 0: - drain_event.setCount(unready_cpus) - simulate() - internal.event.cleanupCountedDrain(drain_event) # Now all of the CPUs are ready to be switched out - for old_cpu in old_cpus: + for old_cpu, new_cpu in cpuList: old_cpu._ccObject.switchOut() - index = 0 - for new_cpu in new_cpus: - new_cpu.takeOverFrom(old_cpus[index]) - new_cpu._ccObject.resume() - index += 1 + + for old_cpu, new_cpu in cpuList: + new_cpu.takeOverFrom(old_cpu) |