[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] Reverse execution and deterministic replay
From: |
Pavel Dovgaluk |
Subject: |
Re: [Qemu-devel] Reverse execution and deterministic replay |
Date: |
Fri, 27 Jun 2014 15:17:01 +0400 |
> On 27 June 2014 11:35, Pavel Dovgaluk <address@hidden> wrote:
> > The major disadvantage of icount is that it's updated only on TB boundaries.
> > When one instruction in the middle of the block uses virtual clock, it could
> > have different values for different divisions of the code to TB.
>
> This is only true if the instruction is incorrectly not
> marked as being "I/O". The idea behind icount is that in
> general we update it on TB boundaries (it's much faster
> than doing it once per insn) but for those places which
> do turn out to need an exact icount we then retranslate
> the block to get the instruction-to-icount-adjustment
> mapping.
I see. But if we want virtual clock in "real" mode then we still
should create new timer (based on icount code).
> It wouldn't surprise me if this turned out to have some
> bugs in corner cases, but fixing these issues seems to
> me like a much better design than ignoring icount completely
> and reimplementing a second instruction counter.
When we started an implementation, we didn't have enough resources
to fix all such bugs. That is why we selected such conservative
approach. But I believe that in future we will adopt the icount
for replay purposes.
Pavel Dovgaluk
Re: [Qemu-devel] Reverse execution and deterministic replay, Peter Maydell, 2014/06/27