From 157bd25802d0775ea5b2b7c217f3e57f51562dee Mon Sep 17 00:00:00 2001 From: Nathan Binkert Date: Sat, 4 Aug 2007 16:02:04 -0700 Subject: python: provide access to stats --HG-- extra : convert_revision : 18a4e9ef21bd77ec73482557e028d535f0c1f273 --- src/python/m5/__init__.py | 1 + 1 file changed, 1 insertion(+) (limited to 'src/python') 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 -- cgit v1.2.3 From 300712c0d118646d2d2ea206f8d27fd43dbd9040 Mon Sep 17 00:00:00 2001 From: Nathan Binkert Date: Sat, 4 Aug 2007 16:05:18 -0700 Subject: swig: %include all of the enums to get all of the definitions. (instead of %import) --HG-- extra : convert_revision : bc4a39d7be3aad59b34d55aa8dd2c28285f09db9 --- src/python/generate.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/python') 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: -- cgit v1.2.3 From 5a27431b969ed0557d2a079066d082153f97af9d Mon Sep 17 00:00:00 2001 From: Nathan Binkert Date: Sat, 4 Aug 2007 16:06:19 -0700 Subject: python: use the enum values in the memory mode changing code --HG-- extra : convert_revision : 2e399b2b407922ad076f93d33af73e3ba4c05218 --- src/python/m5/simulate.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/python') diff --git a/src/python/m5/simulate.py b/src/python/m5/simulate.py index c703664d4..6db25f0ed 100644 --- a/src/python/m5/simulate.py +++ b/src/python/m5/simulate.py @@ -148,20 +148,20 @@ 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" -- cgit v1.2.3 From 7a996ccc98421b361f6dfd8fe6e949299152935b Mon Sep 17 00:00:00 2001 From: Nathan Binkert Date: Sat, 4 Aug 2007 16:09:24 -0700 Subject: switching: Remove the drain and resume code from the switching code. This allows us to change memory modes as well. Clean up the code while we're at it. --HG-- extra : convert_revision : fc5fee9ffd08b791f0607ee2688f32aa65d15354 --- src/python/m5/simulate.py | 37 +++++++++++-------------------------- 1 file changed, 11 insertions(+), 26 deletions(-) (limited to 'src/python') diff --git a/src/python/m5/simulate.py b/src/python/m5/simulate.py index 6db25f0ed..6c70d8fbd 100644 --- a/src/python/m5/simulate.py +++ b/src/python/m5/simulate.py @@ -167,34 +167,19 @@ 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) -- cgit v1.2.3