qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [RFC 0/3] Determinitic behaviour with icount.


From: Frederic Konrad
Subject: Re: [Qemu-devel] [RFC 0/3] Determinitic behaviour with icount.
Date: Tue, 30 Jul 2013 09:06:26 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130625 Thunderbird/17.0.7

On 29/07/2013 18:42, Paolo Bonzini wrote:
Il 29/07/2013 17:27, Frederic Konrad ha scritto:
On 18/07/2013 17:35, Paolo Bonzini wrote:
Il 18/07/2013 17:06, Peter Maydell ha scritto:
On 18 July 2013 16:02,<address@hidden>  wrote:
As I said in the last email, we have issues with determinism with
icount.
We are wondering if determinism is really ensured with icount?
My opinion is that it *should* be deterministic but it would
be unsurprising if the determinism had got broken along the way.
First of all, it can only be deterministic if the guest satisfies (at
least) all the following condition:

1) only uses timer that QEMU bases on vm_clock (which means that you
should use "-rtc clock=vm"---sorry Fred, didn't think about this in the
previous answer);

2) never does any network operation nor any asynchronous disk I/O
operation

3) never halts the VCPU waiting for an interrupt
Hi,

qemu_alarm is making the replay not deterministic too.
What is qemu_alarm?  If you mean qemu_alarm_timer, then that means
rt_clock and host_clock (item 1 above)?

If so, yes, I believe you need to record/replay them.  When doing replay
for reverse execution, you certainly want to execute at full speed
without waiting for real time to pass again.

Paolo

Yes, it was what we believed too. :)

Thanks,
Fred

We tried to remove those alarms and it seems to replay well (at least
far better).

So the question is: how we can solve that?

We thought at two possibilities :
   * record/replay them, like IO.
   * base them on our new ic_clock.

Both have drawbacks:
   * record/replay won't make icount more deterministic (run to run).
   * ic_clock speed time is apparently not constant.

Thanks,
Fred





reply via email to

[Prev in Thread] Current Thread [Next in Thread]