[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC] Undeterministic behaviour with icount.
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [RFC] Undeterministic behaviour with icount. |
Date: |
Wed, 10 Jul 2013 15:45:24 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130514 Thunderbird/17.0.6 |
Il 08/07/2013 19:32, Frederic Konrad ha scritto:
> Hi everybody,
>
> We get some issues with reverse execution caused by indeterminism.
>
> Something catched our attention:
> static void icount_warp_rt(void *opaque), cpus.c:276
>
> We have the feeling that icount is synchronized with rt_clock, is that
> possible?
When the CPU is idle, yes.
Note that the same thing happened before the series you linked. This is
the relevant code:
- /* Wait for either IO to occur or the next
- timer event. */
- add = qemu_next_deadline();
- /* We advance the timer before checking for IO.
- Limit the amount we advance so that early IO
- activity won't get the guest too far ahead. */
- if (add > 10000000)
- add = 10000000;
- delta += add;
- qemu_icount += qemu_icount_round (add);
It was adding to the icount while waiting for the next timer event to
happen.
> According to this Paolo's series
> <http://lists.gnu.org/archive/html/qemu-devel/2011-04/msg01271.html>
> this must be called when the cpus are sleeping, but
> I saw this called frequently during the execution, is that the expected
> behaviour?
What workload are you running? For anything that is not CPU bound I'd
expect that to be the case.
Paolo
> If not what's the best way to fix that?