I'm generating checkpoints from spec for a research project. I have a use case where I'm introducing novel instructions but they only have OoO core semantics rather than program semantics, and any binary I modify to include them has the exact same addresses for functions, basic blocks etc as an unmodified binary.
My method to generate checkpoints has been to run a binary without novel instructions natively to generate simpoints, generate the checkpoints with gem5 passing the unmodified binaries, then restore the checkpoints passing the modified binaries that have the novel instructions.
I've realised though I'm not sure this may work as intended. Do the checkpoints gem5 generates include a memory dump of instructions loaded from a binary as well as stack/heap working data too? I'm intending for all instructions to be loaded out of the binary I pass on checkpoint restore, rather than out of the checkpoint. Is anybody able to confirm for me whether or not this is actually the case?
Thanks.
Sent from Proton Mail mobile
Hi,
I've realised though I'm not sure this may work as intended. Do the
checkpoints gem5 generates include a memory dump of instructions loaded
from a binary as well as stack/heap working data too? I'm intending for all
instructions to be loaded out of the binary I pass on checkpoint restore,
rather than out of the checkpoint. Is anybody able to confirm for me
whether or not this is actually the case?
I doubt that restoring will work the way you intend to. Based on my
understanding, the checkpoint contains a dump of the physical memory and
the architectural state and the simulation will restore from exactly the
same state/memory image. That means the simulation will resume with the
old program loaded into the memory.
-Ayaz
On Wed, Jun 14, 2023 at 4:09 AM muke101 via gem5-users gem5-users@gem5.org
wrote:
I'm generating checkpoints from spec for a research project. I have a use
case where I'm introducing novel instructions but they only have OoO core
semantics rather than program semantics, and any binary I modify to include
them has the exact same addresses for functions, basic blocks etc as an
unmodified binary.
My method to generate checkpoints has been to run a binary without novel
instructions natively to generate simpoints, generate the checkpoints with
gem5 passing the unmodified binaries, then restore the checkpoints passing
the modified binaries that have the novel instructions.
I've realised though I'm not sure this may work as intended. Do the
checkpoints gem5 generates include a memory dump of instructions loaded
from a binary as well as stack/heap working data too? I'm intending for all
instructions to be loaded out of the binary I pass on checkpoint restore,
rather than out of the checkpoint. Is anybody able to confirm for me
whether or not this is actually the case?
Thanks.
Sent from Proton Mail mobile
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-leave@gem5.org