|Subject:||Questions about timer interrupt handling in QEMU|
|Date:||Sun, 14 Mar 2021 14:34:01 +0530|
This is a continuation of some of the questions I had about the clock record-replay handling process in QEMU. My previous post is here -
My experiment involves two steps. In the first step, I start QEMU in KVM mode, save the QEMU state and record the host clock values for some time. In the second step, I load the guest while starting QEMU in TCG mode. I replay the host clock values as and when they are accessed. By definition, the host clock is used by device models that simulate real time sources and is a source of non-determinism. Below are some of the questions I have -
- How do I ensure that the CPU configuration is exactly the same in KVM vs TCG modes? Can we use a generic CPU model, like "qemu64" and that ensures it? Will different CPU flags in both the modes affect it ?
- I continuously see that the contents of memory are different when the guest tries to run a timer interrupt handler after it is loaded. Basically what happens is that I keep getting page faults when the hander tries to erase a timer from the rbtree. I seem to be replaying the host clock correctly, what else, might be wrong?
- Given the minimal replay requirements I have, is it enough if I only record the host clock timer ? Or do I need to record the other clock timer types in addition to it to make the guest behave correctly ?
|[Prev in Thread]||Current Thread||[Next in Thread]|