Hi, For me personally, it took me a couple days before I realized that gem5 system does not end whatsoever when there is a scheduled event. In other words, if you keep on scheduling things, (calling schedule inside your wakeup function without any condition), the system never ends.
Not sure if that’s your case. Best, Timothy Chong Boston University > Le Feb 10, 2016 à 3:07 PM, Felipe Rocha da Rosa <[email protected]> > a écrit : > > Hi, > Yes I`m adding a new module (but I schedule events by the number of > instructions using self.system.cpu[0].scheduleInstStop for exemple), however > this problem is occurring in the "clean" gem5 from the repository (stable or > not). The checkpoint never returns from the drain call. > > > Best regards, > Felipe Rocha da Rosa > > Best regards, > Felipe Rocha da Rosa, > PhD Student - PGMICRO - UFRGS, > frdarosa.com <http://www.frdarosa.com/> > > From: [email protected] > Date: Wed, 10 Feb 2016 13:44:57 -0500 > To: [email protected] > Subject: Re: [gem5-users] Checkpoint in detailed cpu causing error > > Hi, > > I had problems that sound very similar to your case just a couple days ago. > Did you happen to have to write a module yourself? or did you have to call « > schedule » inside your module in order to tick your own clock? > > Thanks, > Timothy Chong > Boston University > > > Le Feb 10, 2016 à 1:31 PM, Felipe Rocha da Rosa <[email protected] > <mailto:[email protected]>> a écrit : > > Hi! > > I'm trying to execute several slightly different executions of the same > application using the Detailed (DerivO3CPU) CPU mode and compare then. For > the purpose, my idea was executing the application and create a checkpoint at > the end. However, the checkpoint is never complete. I trace the cause to the > drain function in gem5-stable/src/python/m5/simulate.py, where the simulator > is called again and so remaining in the loop forever. My question is if I can > comment/change this line and do not perform the drain() without changing the > final results. > > > def drain(root): > # Try to drain all objects. Draining might not be completed unless > # all objects return that they are drained on the first call. This > # is because as objects drain they may cause other objects to no > # longer be drained. > def _drain(): > all_drained = False > dm = internal.drain.createDrainManager() > unready_objs = sum(obj.drain(dm) for obj in root.descendants()) > # If we've got some objects that can't drain immediately, then > simulate > if unready_objs > 0: > dm.setCount(unready_objs) > #WARNING: if a valid exit event occurs while draining, it will not > # get returned to the user script > exit_event = simulate() > while exit_event.getCause() != 'Finished drain': > exit_event = simulate() > else: > all_drained = True > internal.drain.cleanupDrainManager(dm) > return all_drained > > all_drained = _drain() > while (not all_drained): > all_drained = _drain() > > def checkpoint(dir): > root = objects.Root.getInstance() > if not isinstance(root, objects.Root): > raise TypeError, "Checkpoint must be called on a root object." > drain(root) > memWriteback(root) > print "Writing checkpoint" > internal.core.serializeAll(dir) > resume(root) > > Command: > ./build/ARM/gem5.opt ./configs/example/se.py -c queens -o 10 > --cpu-type=detailed --caches --l1i_size=32kB --l1i_assoc=4 --l1d_size=32kB > --l1d_assoc=4 --l2_size=512kB --l2_assoc=8 --checkpoint-at-end > > Thanks in advance! > > Best regards, > Felipe Rocha da Rosa > _______________________________________________ > gem5-users mailing list > [email protected] <mailto:[email protected]> > http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users > <http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users> > > _______________________________________________ gem5-users mailing list > [email protected] > <mailto:[email protected]>http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users > > <http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users>_______________________________________________ > gem5-users mailing list > [email protected] <mailto:[email protected]> > http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users > <http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users>
_______________________________________________ gem5-users mailing list [email protected] http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
