Hello Ayaz,

Thank you for your response! 😊

I am trying to checkpoint with Atomic then restore to atomic and switch to 
Timing/O3.

Your advice works if I checkpoint with this and also with Timing, then restore 
with Timing and switch, thank you.

From my knowledge the way to switch CPUs in stdlib is to use m5 exit, and to 
override the exit event with a cpu switch.
Or to do the same from a bootscript.

Is there a way to delay the switch in gem5 so that its not immediately after a 
boot (when I checkpoint).
I have tried:
"m5 checkpoint; m5 exit [10000000000]; "
To delay exit event by 10000000000 cycles. (also have tried without square 
brackets).

But this returns that my usage of m5 commands is incorrect.

Also I assume switching multiple times between different CPUs will require a 
new script based off of SimpleSwitchableProcessor
Kind regards,
Abdal

From: Ayaz Akram <yazak...@ucdavis.edu>
Sent: Tuesday, June 20, 2023 8:11 PM
To: The gem5 Users mailing list <gem5-users@gem5.org>
Cc: AbdelQader AlKilany <abdelqader.alkil...@huawei.com>
Subject: Re: [gem5-users] Simple Switchable Processor with checkpoint 
restoration

Hi Abdal,

Assuming that you run into this problem when using different start and switch 
core types for SimpleSwitchable processor in your script, I think the main 
problem is that on restore the start core type is not the same as the core with 
which you took the checkpoint (which I am assuming was the switch core type, 
let me know if that is not the case). I think you can restore your checkpoint 
using SimpleProcessor as well. However, in that case if you want to switch 
again after restoring you would not be able to do so. Another solution/option 
is to create a new class that inherits from SimpleSwitchableProcessor in which 
you just swap the start and switch keys, for example some thing like following:


        self._start_key = "switch"

        self._switch_key = "start"



And then use this new processor type in your restore script. This way you will 
restore with the correct CPU type and if you want to switch to a different CPU 
type you can do that as well.

-Ayaz

On Mon, Jun 19, 2023 at 11:45 AM AbdelQader AlKilany via gem5-users 
<gem5-users@gem5.org<mailto:gem5-users@gem5.org>> wrote:
Hello gem5 users,


I was having some trouble trying to restore a simulation from a checkpoint when 
using a stdlib switchable processor (SimpleSwitchableProcessor).

When I would attempt to run a simulation like this the simulation would freeze 
up and not restore the checkpoint at all.

I was wondering whether this functionality had been implemented yet or whether 
there was another way to achieve this using by adding to one of the processor 
or configuration scripts.

The only difference I could find between SwitchableProcessor and 
SimpleProcessor (which restored checkpoints fine) was that the former inherits 
directly from AbstractProcessor and the latter inherits from BaseCPUProcessor 
so I thought some functionality may have been added to BaseCPUProcessor which 
wasn’t available in AbstractProcessor alone.

Thank you for any help! 😊

Kind Regards,
Abdal
_______________________________________________
gem5-users mailing list -- gem5-users@gem5.org<mailto:gem5-users@gem5.org>
To unsubscribe send an email to 
gem5-users-le...@gem5.org<mailto:gem5-users-le...@gem5.org>
_______________________________________________
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org

Reply via email to