Hello, Maybe this workaround could work for you: simulate until the bench ends, switch to the atomic CPU and take a checkpoint.
The switch from detailed to atomic works (my gem5 version: 11153:20bbfe5b2b86). You'll probably need to modify configs/common/Simulation.py to do that. Hope it helps and boa sorte, -- Fernando A. Endo, Post-doc INRIA Rennes-Bretagne Atlantique France 2016-02-12 1:27 GMT+01:00 Felipe Rocha da Rosa <feliperochadar...@gmail.com> : > Hello, > Thank you for replying. > I saw a old email about that, but I didn't know if was fixed or not. > My idea is not fast forward the execution of a given application. Instead, > I will change slightly some parameters for each one. Then comparing the two > executions (using the OoOmodel) using the checkpoints information at the > end to capture the behavior though some scripts I have. I don't want to > restore this checkpoints only collect the data, like register state, PC and > mainly the memory dump. The checkpoint could be at any moment during the > simulation, and I'm just considering at the end of the execution to > simplify the question. > > At the current moment, I'm trying to use the checkpoint without the drain > function and appears to work for my purposes. But I still wondering I it > never drains out. I change some parameters into the drain function without > success. > > ------------------------------ > > Best regards, > > Felipe Rocha da Rosa > > > > > ------------------------------ > Date: Thu, 11 Feb 2016 08:34:37 -0500 > From: rizwana....@gmail.com > > To: gem5-users@gem5.org > Subject: Re: [gem5-users] Checkpoint in detailed cpu causing error > > Hello Felipe, > > I am not sure if I understand your use case completely. I had similar > problem with creating checkpoints with detailed mode CPU right after > boot. From the discussion on the mailing list, IIRC checkpoint > functionality is not tested for ARM detailed CPU as part of Gem5 regression > tests, so I think I can say that it's not guaranteed to work. In my case, I > just create checkpoint with atomic boot and restore with detailed CPU. > > I am curious, how does creating checkpoint at the end of application > execution helps? > > Thank you > Rizwana > > On Wednesday, February 10, 2016, Timothy Chong <ctimo...@bu.edu> wrote: > > 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 < > feliperochadar...@gmail.com> 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: ctimo...@bu.edu > Date: Wed, 10 Feb 2016 13:44:57 -0500 > To: gem5-users@gem5.org > 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 < > feliperochadar...@gmail.com> 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 > gem5-users@gem5.org > http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users > > > > _______________________________________________ gem5-users mailing list > gem5-users@gem5.orghttp://m5sim.org/cgi-bin/mailman/listinfo/gem5-users > _______________________________________________ > gem5-users mailing list > gem5-users@gem5.org > http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users > > > > _______________________________________________ gem5-users mailing list > gem5-users@gem5.org http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users > > _______________________________________________ > gem5-users mailing list > gem5-users@gem5.org > http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users >
_______________________________________________ gem5-users mailing list gem5-users@gem5.org http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users