[gem5-users] Re: Modifying simulation structure after instantiation/checkpoint restore

2022-04-12 Thread Antoine Kaufmann via gem5-users
Thanks for the quick response Sam!

Yeah I saw that that also seems to be how the CPU swapping is implemented, and
for switching out a few objects this seems like the easiest way to get this to
work.

But my use case is a bit messy and I want to make larger structural changes. So
I am wondering if this is something that is doable in principle within the
object/config model, or if I need to figure out some workaround.


For a bit more context: we're trying to partition one larger multi-core
simulation configuration into multiple smaller parts that we connect together
(and synchronize) at the memory ports going across configurations. We have the
interconnections and synchronization working for SE configs where we manually
configure each partition, but I'm trying to figure out the simplest way of doing
this for full-system, where the initialization in the workload etc. really needs
the global view of all thread contexts etc. so I was hoping we could just create
it and initialize it in one process, and then checkpoint, and then restore the
checkpoint for each partition but delete the unneeded objects and add in the
"proxy objects" connecting partitions. If that does not work the initialization
gets a fair bit more complex, which I would like to avoid if possible.

So if anyone has any pointers to indicate that making such changes to the
simulation structure are generally possible or impossible that would be very
useful before we get too deep down into the weeds. :-)

Thanks
Antoine

On Tue, Apr 12 15:49, Thomas, Samuel via gem5-users wrote:
> Hi Antoine,
> 
> We had a similar use case in our work. Our solution was to include all of
> the objects that we wanted to in the system and implement them so that they
> forward all packets in the mode that you don't care about. For us, we
> wanted to include an object that we didn't want to do anything during
> fast-forward mode, so our implementation of its port functions that handle
> atomic requests merely sends the packets along without doing any
> processing. In theory, you could do the same with timing packets if you
> don't want the object to be in the system during an atomic mode
> fast-forward but not in the system for timing mode.
> 
> I hope this helps!
> 
> Best,
> Sam
> 
> On Tue, Apr 12, 2022 at 3:43 PM Antoine Kaufmann via gem5-users <
> gem5-users@gem5.org> wrote:
> 
> > Hi everyone,
> >
> > I have a quick conceptual question about gem5 configuration: are there
> > restrictions about what can be modified in an already instantiated and
> > initialized gem5 config, say after restoring from a checkpoint. I know
> > there is
> > some special cases such as replacing CPUs on restore. Is this something
> > that
> > gem5 supports more generally, e.g. swapping out, adding,
> > connecting/disconnecting, or removing SimObjects in a simulation? Or is
> > making
> > changes to the simulation structure generally a problem?
> >
> > The use-case I'm looking at is similar to the CPU swapping, but wih other
> > objects as well, basically boot system with a fast config, and then swap
> > out
> > other things too for more detailed versions. (setting up logical state for
> > the
> > replacement simobjects is something I have in hand, so I'm only wondering
> > about
> > whether gem5 will be unhappy if I attempt to make such structural changes
> > to a
> > simulation).
> >
> > Thanks in advance,
> > Antoine
> >
> > --
> > Antoine Kaufmann
> > 
> > ___
> > gem5-users mailing list -- gem5-users@gem5.org
> > To unsubscribe send an email to gem5-users-le...@gem5.org
> > %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

> ___
> gem5-users mailing list -- gem5-users@gem5.org
> To unsubscribe send an email to gem5-users-le...@gem5.org
> %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s


-- 
Antoine Kaufmann



signature.asc
Description: PGP signature
___
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

[gem5-users] Re: Modifying simulation structure after instantiation/checkpoint restore

2022-04-12 Thread Thomas, Samuel via gem5-users
Hi Antoine,

We had a similar use case in our work. Our solution was to include all of
the objects that we wanted to in the system and implement them so that they
forward all packets in the mode that you don't care about. For us, we
wanted to include an object that we didn't want to do anything during
fast-forward mode, so our implementation of its port functions that handle
atomic requests merely sends the packets along without doing any
processing. In theory, you could do the same with timing packets if you
don't want the object to be in the system during an atomic mode
fast-forward but not in the system for timing mode.

I hope this helps!

Best,
Sam

On Tue, Apr 12, 2022 at 3:43 PM Antoine Kaufmann via gem5-users <
gem5-users@gem5.org> wrote:

> Hi everyone,
>
> I have a quick conceptual question about gem5 configuration: are there
> restrictions about what can be modified in an already instantiated and
> initialized gem5 config, say after restoring from a checkpoint. I know
> there is
> some special cases such as replacing CPUs on restore. Is this something
> that
> gem5 supports more generally, e.g. swapping out, adding,
> connecting/disconnecting, or removing SimObjects in a simulation? Or is
> making
> changes to the simulation structure generally a problem?
>
> The use-case I'm looking at is similar to the CPU swapping, but wih other
> objects as well, basically boot system with a fast config, and then swap
> out
> other things too for more detailed versions. (setting up logical state for
> the
> replacement simobjects is something I have in hand, so I'm only wondering
> about
> whether gem5 will be unhappy if I attempt to make such structural changes
> to a
> simulation).
>
> Thanks in advance,
> Antoine
>
> --
> Antoine Kaufmann
> 
> ___
> gem5-users mailing list -- gem5-users@gem5.org
> To unsubscribe send an email to gem5-users-le...@gem5.org
> %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
___
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s