Hi Giacomo, 

First of all, thanks for your time answering the question.
Your assumption about KVM is correct. I just use it to fast-forward, and I do 
not need to execute the instruction I want to implement in KVM mode.

Long story short: the same code for the ROI is executed during the 
fast-forwarding phase. 

Do you know if it's possible to capture the CPU type that gem5 code is running, 
from the application?
This way I could manage to generate checkpoints with KVM using a functionally 
equivalent code that does not use my new instruction, and when I restore with a 
gem5 CPU, the new instruction is used.

Alternatively, perhaps, I can capture the "unimplemented instruction" from the 
application, and in that case, call a functionally equivalent code? I'm not 
sure if the CPU will let me continue the execution when the unimplemented 
instruction is found (with KVM), though. There should be some way to capture 
this kind of exception I guess...

If that is not a possible solution, then I'd have to run as many simulations as 
checkpoints I want (if I'm not mistaken one can go from KVM to gem5 CPU, but 
not go back to KVM), adapting the code to run up until the desired checkpoint 
time and changing some control variable so that my new instruction starts to be 
used. Although this is doable, it would be a little bit inconvenient as I take 
tens of checkpoints.

Any thoughts about these alternatives? I'll probably have to explore/try them 
anyway, but any hints on where to start are helpful.
_______________________________________________
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

Reply via email to