On Mon, May 28, 2012 at 10:52 AM, Hanna Alam <[email protected]> wrote:
> i have a question about the switch event between the two modes : > what are the events that drive the switch between modes(where can i find a > list if possible ) and if i change the machine state in such a way that we > need to save more than the basic info of the machine for restoring (for > instance changing the interface of the TLB and page table walk -making the > application responsible for the virtual address space) is it possible to do > so ? > Regarding the list of events that trigger switch from simulation to emulation mode are: - Interrupt pending - Timer expired - Device emulation model needs CPU (for example NIC emulator received a packet) - Page fault (no valid translation found on page tables) - Complex opcodes (look for all 'assist' opcode functions in decode-complex and decode-x87) Its possible to store any arbitrary info into 'checkpoint' using QEMU's interface 'VMStateDescription' object and implementing functions to write and restore those variables. I assume this is what you are asking. if not is it possible is it possible to limit the simulator to cycle > accurate simulation mode only without the switching to fast simulation ? > > Simulation mode relies on 'emulation' process to execute mentioned events, so its not possible to run only in simulation mode. But if you use 'checkpoints' then when you restore checkpoint with -run simconfig option it will immediately run in simulation mode and no instruction will be emulated. - Avadh PS: This email got buried in my inbox while we were working for ISCA tutorial. So please disregard late response. > Much appreciated, > Hanna . > > _______________________________________________ > http://www.marss86.org > Marss86-Devel mailing list > [email protected] > https://www.cs.binghamton.edu/mailman/listinfo/marss86-devel > >
_______________________________________________ http://www.marss86.org Marss86-Devel mailing list [email protected] https://www.cs.binghamton.edu/mailman/listinfo/marss86-devel
