[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] Deterministic replay
From: |
Pavel Dovgaluk |
Subject: |
[Qemu-devel] Deterministic replay |
Date: |
Wed, 22 Dec 2010 14:20:01 +0300 |
Hello.
I am working on implementation of deteministic execution replay technology
for Qemu. It should be similar to VMWare's replay debugging.
To make alarm timer (which invokes host_alarm_handler function)
determinisic, I changed it's behavior: it sets flag, that execution should
be stopped and this flag is checked before every instruction in the
translated code.
To allow breaking the execution in any moment, I added flag check and
exit_tb call before every instruction.
But there is one problem occurred: when I make the same actions like
gen_eob() function, Windows XP cannot load on emulated machine (it reboots
with GPF).
But when I remove two of the actions, everything is OK. These actions are
the following:
if (s->tb->flags & HF_INHIBIT_IRQ_MASK) {
gen_helper_reset_inhibit_irq();
}
if (s->tb->flags & HF_RF_MASK) {
gen_helper_reset_rf();
}
What are these actions for? When I remove any of them the booting process
is OK.
Please help me to understand interrupts mechanism or give links where to
read about it.
I apply my modifications to version 0.12.3 of Qemu. Please refer to it.
Pavel Dovgaluk
- [Qemu-devel] Deterministic replay,
Pavel Dovgaluk <=