|Subject:||Re: QEMU Clock record and replay|
|Date:||Fri, 26 Feb 2021 09:05:45 +0530|
Arnabjyoti Kalita <email@example.com> writes:
> Hello all,
> I am trying to understand how the clock values are recorded and replayed in
> QEMU (when it runs in TCG mode). I have been specifically following the
> document that has been provided here -
> I have the following 4 questions to ask-
> - Why are clock values being replayed off a cache and not directly off the
> file as seen here -
> - I have a requirement to record and replay host clock values. Can it so
> happen that if incorrect values of the host clock are replayed, then the
> timers in the guest start expiring incorrectly, during replay?
Host clock values would be meaningless in the context of record/replay.
"time" is simply a function of the number of instruction executed. As
all asynchronous events (e.g. HW timers expiring) are a function of this
executed instruction count you get determinism as no external events
influence the behaviour of the run. This is then paired with recording
other hardware events like blocks and packets against this time to get
your full record/replay experience.
The underlying icount is explained in a bit more detail at:
> - Let's say we record the clock values when the guest starts in KVM mode,
> and we replay the clock values when the guest starts in TCG mode. Does the
> record-replay functionality change a lot?
> - Also, I couldn't understand the specific purpose of replaying the
> 'virtual real time clock' ? Do I still need to record and replay the
> 'virtual real time clock' if we record the clock values in KVM mode, and
> replay the clock values in TCG mode?
It won't work. You can only ever record when running in TCG icount mode
because having that stable and deterministic behaviour is a
|[Prev in Thread]||Current Thread||[Next in Thread]|