gem5-users@gem5.org

The gem5 Users mailing list

View all threads

Thread migration using m5ops

BP
Bryce Patel
Thu, Apr 19, 2018 4:03 PM

Hello,

I am very new to GEM5 and I am wondering how best to simulate thread
migration on an asymmetric multicore system. I was thinking I could take a
checkpoint partway through execution using the checkpoint m5op, then use
the switchcpu m5op, and then restore the checkpoints on another CPU. My
understanding is I would include these m5ops in the source code of the
application I'm using. Does this sound correct, or am I misunderstanding
how to use m5ops?

Also, do you know of any example code that uses m5ops that I could use for
reference?

Thanks, Bryce Patel

Hello, I am very new to GEM5 and I am wondering how best to simulate thread migration on an asymmetric multicore system. I was thinking I could take a checkpoint partway through execution using the checkpoint m5op, then use the switchcpu m5op, and then restore the checkpoints on another CPU. My understanding is I would include these m5ops in the source code of the application I'm using. Does this sound correct, or am I misunderstanding how to use m5ops? Also, do you know of any example code that uses m5ops that I could use for reference? Thanks, Bryce Patel
CS
Ciro Santilli
Thu, Apr 19, 2018 5:08 PM

On Thu, Apr 19, 2018 at 5:03 PM, Bryce Patel <brycep(a)andrew.cmu.edu> wrote:

Hello,

I am very new to GEM5 and I am wondering how best to simulate thread
migration on an asymmetric multicore system. I was thinking I could take a
checkpoint partway through execution using the checkpoint m5op, then use the
switchcpu m5op, and then restore the checkpoints on another CPU. My
understanding is I would include these m5ops in the source code of the
application I'm using. Does this sound correct, or am I misunderstanding how
to use m5ops?

Also, do you know of any example code that uses m5ops that I could use for
reference?

Thanks, Bryce Patel


gem5-users mailing list
gem5-users(a)gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

On Thu, Apr 19, 2018 at 5:03 PM, Bryce Patel <brycep(a)andrew.cmu.edu> wrote: > Hello, > > I am very new to GEM5 and I am wondering how best to simulate thread > migration on an asymmetric multicore system. I was thinking I could take a > checkpoint partway through execution using the checkpoint m5op, then use the > switchcpu m5op, and then restore the checkpoints on another CPU. My > understanding is I would include these m5ops in the source code of the > application I'm using. Does this sound correct, or am I misunderstanding how > to use m5ops? > > Also, do you know of any example code that uses m5ops that I could use for > reference? > Parsec checkpoint example: https://github.com/arm-university/arm-gem5-rsk/blob/aa3b51b175a0f3b6e75c9c856092ae0c8f2a7cdc/parsec_patches/xcompile-patch.diff#L188 Some fs.py gotchas: https://stackoverflow.com/questions/49011096/how-to-switch-cpu-models-in-gem5-after-restoring-a-checkpoint-and-then-observe-t/49673265#49673265 I first recommend that you first play a bit with the "m5 checkpoint" on the m5 guest tool + the fs.py -r option, example: https://github.com/cirosantilli/linux-kernel-module-cheat/tree/2852fe1989a6f1ab546e9a4fa88724423b3949f5#gem5-checkpoint > Thanks, Bryce Patel > > _______________________________________________ > gem5-users mailing list > gem5-users(a)gem5.org > http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
BP
Bryce Patel
Thu, Apr 19, 2018 9:20 PM

Thanks for these links, I will look through them for help. The -r option
indicates the checkpoint number that I want to restore, right? I have been
using --restore=mtout/cpt.TICKNUMBER but I imagine -r will work similarly.
Also, I am not sure what you mean by the "m5 guest tool". My understanding
is the guest the simulated machine but what are the guest tools?

Thanks. Bryce Patel

On Thu, Apr 19, 2018 at 1:08 PM, Ciro Santilli <ciro.santilli(a)gmail.com>
wrote:

On Thu, Apr 19, 2018 at 5:03 PM, Bryce Patel <brycep(a)andrew.cmu.edu>
wrote:

Hello,

I am very new to GEM5 and I am wondering how best to simulate thread
migration on an asymmetric multicore system. I was thinking I could take

a

checkpoint partway through execution using the checkpoint m5op, then use

the

switchcpu m5op, and then restore the checkpoints on another CPU. My
understanding is I would include these m5ops in the source code of the
application I'm using. Does this sound correct, or am I misunderstanding

how

to use m5ops?

Also, do you know of any example code that uses m5ops that I could use

for

reference?

Parsec checkpoint example:
https://github.com/arm-university/arm-gem5-rsk/blob/
aa3b51b175a0f3b6e75c9c856092ae0c8f2a7cdc/parsec_patches/
xcompile-patch.diff#L188

Some fs.py gotchas:
https://stackoverflow.com/questions/49011096/how-to-
switch-cpu-models-in-gem5-after-restoring-a-checkpoint-
and-then-observe-t/49673265#49673265

I first recommend that you first play a bit with the "m5 checkpoint"
on the m5 guest tool + the  fs.py -r option, example:
https://github.com/cirosantilli/linux-kernel-module-cheat/tree/
2852fe1989a6f1ab546e9a4fa88724423b3949f5#gem5-checkpoint

Thanks, Bryce Patel


gem5-users mailing list
gem5-users(a)gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users


gem5-users mailing list
gem5-users(a)gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Thanks for these links, I will look through them for help. The -r option indicates the checkpoint number that I want to restore, right? I have been using --restore=mtout/cpt.TICKNUMBER but I imagine -r will work similarly. Also, I am not sure what you mean by the "m5 guest tool". My understanding is the guest the simulated machine but what are the guest tools? Thanks. Bryce Patel On Thu, Apr 19, 2018 at 1:08 PM, Ciro Santilli <ciro.santilli(a)gmail.com> wrote: > On Thu, Apr 19, 2018 at 5:03 PM, Bryce Patel <brycep(a)andrew.cmu.edu> > wrote: > > Hello, > > > > I am very new to GEM5 and I am wondering how best to simulate thread > > migration on an asymmetric multicore system. I was thinking I could take > a > > checkpoint partway through execution using the checkpoint m5op, then use > the > > switchcpu m5op, and then restore the checkpoints on another CPU. My > > understanding is I would include these m5ops in the source code of the > > application I'm using. Does this sound correct, or am I misunderstanding > how > > to use m5ops? > > > > Also, do you know of any example code that uses m5ops that I could use > for > > reference? > > > > Parsec checkpoint example: > https://github.com/arm-university/arm-gem5-rsk/blob/ > aa3b51b175a0f3b6e75c9c856092ae0c8f2a7cdc/parsec_patches/ > xcompile-patch.diff#L188 > > Some fs.py gotchas: > https://stackoverflow.com/questions/49011096/how-to- > switch-cpu-models-in-gem5-after-restoring-a-checkpoint- > and-then-observe-t/49673265#49673265 > > I first recommend that you first play a bit with the "m5 checkpoint" > on the m5 guest tool + the fs.py -r option, example: > https://github.com/cirosantilli/linux-kernel-module-cheat/tree/ > 2852fe1989a6f1ab546e9a4fa88724423b3949f5#gem5-checkpoint > > > Thanks, Bryce Patel > > > > _______________________________________________ > > gem5-users mailing list > > gem5-users(a)gem5.org > > http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users > _______________________________________________ > gem5-users mailing list > gem5-users(a)gem5.org > http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
CS
Ciro Santilli
Thu, Apr 19, 2018 10:17 PM

On Thu, Apr 19, 2018 at 10:20 PM, Bryce Patel <brycep(a)andrew.cmu.edu> wrote:

Thanks for these links, I will look through them for help. The -r option
indicates the checkpoint number that I want to restore, right? I have been
using --restore=mtout/cpt.TICKNUMBER but I imagine -r will work similarly.
Also, I am not sure what you mean by the "m5 guest tool". My understanding
is the guest the simulated machine but what are the guest tools?

There is a C program called  m5 that can be cross compiled into an
executable to be called inside the guest.

The m5 tool then serves as a command line wrapper for the m5ops, which
is a nice interactive way to play around with them.

It could be considered a canonical m5ops example:
https://github.com/gem5/gem5/blob/b11a6d508c618b33f8626afc6742773cbb293f66/util/m5/m5.c

The tradeoff is that you lose precision, since it goes through a syscall.

Thanks. Bryce Patel

On Thu, Apr 19, 2018 at 1:08 PM, Ciro Santilli <ciro.santilli(a)gmail.com>
wrote:

On Thu, Apr 19, 2018 at 5:03 PM, Bryce Patel <brycep(a)andrew.cmu.edu>
wrote:

Hello,

I am very new to GEM5 and I am wondering how best to simulate thread
migration on an asymmetric multicore system. I was thinking I could take
a
checkpoint partway through execution using the checkpoint m5op, then use
the
switchcpu m5op, and then restore the checkpoints on another CPU. My
understanding is I would include these m5ops in the source code of the
application I'm using. Does this sound correct, or am I misunderstanding
how
to use m5ops?

Also, do you know of any example code that uses m5ops that I could use
for
reference?

Thanks, Bryce Patel


gem5-users mailing list
gem5-users(a)gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users


gem5-users mailing list
gem5-users(a)gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users


gem5-users mailing list
gem5-users(a)gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

On Thu, Apr 19, 2018 at 10:20 PM, Bryce Patel <brycep(a)andrew.cmu.edu> wrote: > Thanks for these links, I will look through them for help. The -r option > indicates the checkpoint number that I want to restore, right? I have been > using --restore=mtout/cpt.TICKNUMBER but I imagine -r will work similarly. > Also, I am not sure what you mean by the "m5 guest tool". My understanding > is the guest the simulated machine but what are the guest tools? > There is a C program called m5 that can be cross compiled into an executable to be called inside the guest. The m5 tool then serves as a command line wrapper for the m5ops, which is a nice interactive way to play around with them. It could be considered a canonical m5ops example: https://github.com/gem5/gem5/blob/b11a6d508c618b33f8626afc6742773cbb293f66/util/m5/m5.c The tradeoff is that you lose precision, since it goes through a syscall. > Thanks. Bryce Patel > > On Thu, Apr 19, 2018 at 1:08 PM, Ciro Santilli <ciro.santilli(a)gmail.com> > wrote: >> >> On Thu, Apr 19, 2018 at 5:03 PM, Bryce Patel <brycep(a)andrew.cmu.edu> >> wrote: >> > Hello, >> > >> > I am very new to GEM5 and I am wondering how best to simulate thread >> > migration on an asymmetric multicore system. I was thinking I could take >> > a >> > checkpoint partway through execution using the checkpoint m5op, then use >> > the >> > switchcpu m5op, and then restore the checkpoints on another CPU. My >> > understanding is I would include these m5ops in the source code of the >> > application I'm using. Does this sound correct, or am I misunderstanding >> > how >> > to use m5ops? >> > >> > Also, do you know of any example code that uses m5ops that I could use >> > for >> > reference? >> > >> >> Parsec checkpoint example: >> >> https://github.com/arm-university/arm-gem5-rsk/blob/aa3b51b175a0f3b6e75c9c856092ae0c8f2a7cdc/parsec_patches/xcompile-patch.diff#L188 >> >> Some fs.py gotchas: >> >> https://stackoverflow.com/questions/49011096/how-to-switch-cpu-models-in-gem5-after-restoring-a-checkpoint-and-then-observe-t/49673265#49673265 >> >> I first recommend that you first play a bit with the "m5 checkpoint" >> on the m5 guest tool + the fs.py -r option, example: >> >> https://github.com/cirosantilli/linux-kernel-module-cheat/tree/2852fe1989a6f1ab546e9a4fa88724423b3949f5#gem5-checkpoint >> >> > Thanks, Bryce Patel >> > >> > _______________________________________________ >> > gem5-users mailing list >> > gem5-users(a)gem5.org >> > http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users >> _______________________________________________ >> gem5-users mailing list >> gem5-users(a)gem5.org >> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users > > > > _______________________________________________ > gem5-users mailing list > gem5-users(a)gem5.org > http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users