[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC PATCH v3 30/30] replay: don't process async events
From: |
Pavel Dovgalyuk |
Subject: |
Re: [Qemu-devel] [RFC PATCH v3 30/30] replay: don't process async events when warping the clock |
Date: |
Fri, 12 Jan 2018 10:20:11 +0300 |
> From: Paolo Bonzini [mailto:address@hidden On Behalf Of Paolo Bonzini
> On 11/01/2018 09:27, Pavel Dovgalyuk wrote:
> > Virtual clock is wapred from iothread and vcpu thread. When the hardware
> > events associated with warp checkpoint, then interrupt delivering may be
> > non-deterministic if checkpoint is processed in different threads in record
> > and replay.
> > This patch disables event processing for clock warp checkpoint and leaves
> > all hardware events to other checkpoints (e.g., virtual clock).
> >
> > Signed-off-by: Pavel Dovgalyuk <address@hidden>
> > ---
> > replay/replay.c | 7 ++++++-
> > 1 file changed, 6 insertions(+), 1 deletion(-)
> >
> > diff --git a/replay/replay.c b/replay/replay.c
> > index b9c496a..cc43c38 100644
> > --- a/replay/replay.c
> > +++ b/replay/replay.c
> > @@ -211,7 +211,12 @@ bool replay_checkpoint(ReplayCheckpoint checkpoint)
> > } else if (replay_mode == REPLAY_MODE_RECORD) {
> > g_assert(replay_mutex_locked());
> > replay_put_event(EVENT_CHECKPOINT + checkpoint);
> > - replay_save_events(checkpoint);
> > + /* This checkpoint belongs to several threads.
> > + Processing events from different threads is
> > + non-deterministic */
> > + if (checkpoint != CHECKPOINT_CLOCK_WARP_START) {
> > + replay_save_events(checkpoint);
> > + }
> > res = true;
> > }
> > out:
> >
>
> Please add an assertion in replay_read_event that the read_checkpoint is
> never CHECKPOINT_CLOCK_WARP_START.
Ok.
> Why is the checkpoint still needed?
Because it synchronizes the warp itself.
Pavel Dovgalyuk
- [Qemu-devel] [RFC PATCH v3 28/30] scripts/qemu-gdb/timers.py: new helper to dump timer state, (continued)
- [Qemu-devel] [RFC PATCH v3 28/30] scripts/qemu-gdb/timers.py: new helper to dump timer state, Pavel Dovgalyuk, 2018/01/11
- [Qemu-devel] [RFC PATCH v3 29/30] replay: improve replay performance, Pavel Dovgalyuk, 2018/01/11
- Re: [Qemu-devel] [RFC PATCH v3 29/30] replay: improve replay performance, Paolo Bonzini, 2018/01/11
- Re: [Qemu-devel] [RFC PATCH v3 29/30] replay: improve replay performance, Pavel Dovgalyuk, 2018/01/11
- Re: [Qemu-devel] [RFC PATCH v3 29/30] replay: improve replay performance, Paolo Bonzini, 2018/01/11
- Re: [Qemu-devel] [RFC PATCH v3 29/30] replay: improve replay performance, Pavel Dovgalyuk, 2018/01/12
- Re: [Qemu-devel] [RFC PATCH v3 29/30] replay: improve replay performance, Paolo Bonzini, 2018/01/12
- Re: [Qemu-devel] [RFC PATCH v3 29/30] replay: improve replay performance, Pavel Dovgalyuk, 2018/01/12
[Qemu-devel] [RFC PATCH v3 30/30] replay: don't process async events when warping the clock, Pavel Dovgalyuk, 2018/01/11
Re: [Qemu-devel] [RFC PATCH v3 00/30] replay additions, no-reply, 2018/01/11
Re: [Qemu-devel] [RFC PATCH v3 00/30] replay additions, no-reply, 2018/01/11
Re: [Qemu-devel] [RFC PATCH v3 00/30] replay additions, Paolo Bonzini, 2018/01/11
- Re: [Qemu-devel] [RFC PATCH v3 00/30] replay additions, Paolo Bonzini, 2018/01/12
- Re: [Qemu-devel] [RFC PATCH v3 00/30] replay additions, Pavel Dovgalyuk, 2018/01/12
- Re: [Qemu-devel] [RFC PATCH v3 00/30] replay additions, Paolo Bonzini, 2018/01/12
- Re: [Qemu-devel] [RFC PATCH v3 00/30] replay additions, Pavel Dovgalyuk, 2018/01/19
- Re: [Qemu-devel] [RFC PATCH v3 00/30] replay additions, Paolo Bonzini, 2018/01/19
- Re: [Qemu-devel] [RFC PATCH v3 00/30] replay additions, Pavel Dovgalyuk, 2018/01/19