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
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
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
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:
Some fs.py gotchas:
I first recommend that you first play a bit with the "m5 checkpoint"
on the m5 guest tool + the fs.py -r option, example:
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