I believe there is a way to do this after the simulation has instantiated. You can schedule a stop on a core like so:
``` processor.cores[0].core.scheduleInstStop(0, 100, "m5_workbegin instruction encountered") ``` which will schedule a "workbegin" exit event after 100 instructions in core 0. While not available on the stable branch just yet, we are working on exposing this in a more clean way via the stdlib on the develop branch: https://gem5-review.googlesource.com/c/public/gem5/+/63153. You could cherry pick this patch and use the API created here. -- Dr. Bobby R. Bruce Room 3050, Kemper Hall, UC Davis Davis, CA, 95616 web: https://www.bobbybruce.net On Mon, Sep 26, 2022 at 10:09 AM Hossam ElAtali <hossam.elat...@uwaterloo.ca> wrote: > > Hi Dr. Bruce, > > > > Thanks a lot for the reply. > > > > Setting the variable this way works, but only if I set it before the simulation starts completely. I looked at the source code and it seems max_insts_any_thread is only used to schedule an exit event in the BaseCPU::init() function. I’m guessing this is only called once at the very beginning. Is there a way to set the max instruction count when the simulation has exited (e.g., due to an m5 exit instruction) so that it runs for n instructions after this point? > > > > Best regards, > > Hossam > > > > From: Bobby Bruce <bbr...@ucdavis.edu> > Sent: Thursday, September 15, 2022 2:43 PM > To: The gem5 Users mailing list <gem5-users@gem5.org> > Subject: [gem5-users] Re: Set max number of instructions to simulate using Board+Simulator API > > > > Hey Hossam, > > A better API for setting max number of instructions via the Simulator module will be coming in v22.1, but in the meantime you can do something like: > > ``` > processor.get_cores()[0].get_simobject().max_insts_any_thread = <max insts> > ``` > > With the above, the simulation will exit when any thread on the first core reaches the max number of threads. > > > -- > Dr. Bobby R. Bruce > Room 3050, > Kemper Hall, UC Davis > Davis, > CA, 95616 > > web: https://www.bobbybruce.net > > > On Thu, Sep 15, 2022 at 9:31 AM Hossam ElAtali < hossam.elat...@uwaterloo.ca> wrote: > > > > Hi everyone, > > > > > > > > I know how to set the max number of instructions using the fs.py scripts. Setting “maxinsts” causes the cpus’ max_insts_any_thread variable to be set. However, I’m currently using the board and Simulator style of creating the run scripts so these variables aren’t exposed in the processor object I give to the board. I’ve been going around the code base and trying out different ways to set max_insts_any_thread but I always end up with “ … has no parameter max_insts_any_thread”. Any ideas? Thank you. > > > > > > > > Best regards, > > > > Hossam > > > > > > > > _______________________________________________ > > gem5-users mailing list -- gem5-users@gem5.org > > To unsubscribe send an email to gem5-users-le...@gem5.org > > _______________________________________________ > gem5-users mailing list -- gem5-users@gem5.org > To unsubscribe send an email to gem5-users-le...@gem5.org
_______________________________________________ gem5-users mailing list -- gem5-users@gem5.org To unsubscribe send an email to gem5-users-le...@gem5.org