Steve, here is the output after putting in the print statements.
Creating root params
Creating root
Done creating root
Creating system params
Creating system
Done creating system
Creating system.l1_cntrl0 params
Nilay
On Wed, 9 Mar 2011, Steve Reinhardt wrote:
It seems odd that it tries to create L1DcacheMemory right after it creates
system. Can you add print statements like in this patch and see what it
shows?
diff --git a/src/python/m5/SimObject.py b/src/python/m5/SimObject.py
--- a/src/python/m5/SimObject.py
+++ b/src/python/m5/SimObject.py
@@ -843,8 +843,11 @@
# Call C++ to create C++ object corresponding to this object
def createCCObject(self):
+ print "Creating", self, "params"
self.getCCParams()
+ print "Creating", self
self.getCCObject() # force creation
+ print "Done creating", self
def getValue(self):
return self.getCCObject()
On Wed, Mar 9, 2011 at 2:34 PM, Nilay Vaish <ni...@cs.wisc.edu> wrote:
Creating root
Creating system.physmem
Creating system
Creating system.l1_cntrl0.L1DcacheMemory
Creating system.ruby
Creating system.ruby.network
Creating system.ruby.network.topology
Creating system.ruby.network.topology.ext_links0
Creating system.l1_cntrl0
Creating system.l1_cntrl0.L1DcacheMemory
This is the output I obtained from SimObject.py, clearly there is a cycle.
Should not the cache controllers be part of ruby, instead of being part of
system? Once they become part of ruby, it should be possible to traverse the
controller array and figure out all the caches.
Nilay
On Wed, 9 Mar 2011, Steve Reinhardt wrote:
I think you're looking in the wrong place... you want to look at
getCCObject() in src/python/m5/SimObject.py where the error message is
coming from, and see if you can add some print statements there.
Steve
_______________________________________________
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev