[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: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [RFC PATCH v3 30/30] replay: don't process async events when warping the clock |
Date: |
Thu, 11 Jan 2018 13:37:27 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.5.0 |
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. Why is the checkpoint still needed?
Thanks,
Paolo
- [Qemu-devel] [RFC PATCH v3 27/30] scripts/replay-dump.py: replay log dumper, (continued)
- [Qemu-devel] [RFC PATCH v3 27/30] scripts/replay-dump.py: replay log dumper, Pavel Dovgalyuk, 2018/01/11
- [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 30/30] replay: don't process async events when warping the clock,
Paolo Bonzini <=
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