[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v4 11/24] net: Use virtual time for net announce
From: |
Nicholas Piggin |
Subject: |
Re: [PATCH v4 11/24] net: Use virtual time for net announce |
Date: |
Wed, 13 Mar 2024 15:38:23 +1000 |
On Tue Mar 12, 2024 at 9:12 PM AEST, Pavel Dovgalyuk wrote:
> On 12.03.2024 14:05, Nicholas Piggin wrote:
> > On Tue Mar 12, 2024 at 7:09 PM AEST, Pavel Dovgalyuk wrote:
> >> This won't work, as needed. Announce timer can't be enabled, because
> >> it is set in post_load function. Therefore announce callbacks break
> >> the replay, when virtio-net is used with snapshots.
> >
> > I see. Is that somehow marked as being incompatible with rr?
>
> Here's the prior discussion on it:
> https://lore.kernel.org/qemu-devel/8735ovx0zd.fsf@linaro.org/t/
Thanks for that context. You already fixed some of these, lol that
would have saved me a few hours. Maybe clearing the announce flag
is the right way to solve this, I might take that instead.
Trouble is we have virtio-net selftests in tests already and this
causes failures. So we need to get it fixed. I do think the bh API
is a bit clunky and could be revised into a name that makes more
sense for the non-replay developer, but that's really a separate
issue and should not prevent this bug fixes being merged.
We really need non-flaky rr testing upstream because it's quite
easy to break. So I will keep trying to get these merged.
Thanks,
Nick
>
>
> >
> > Thanks,
> > Nick
> >
> >>
> >> On 11.03.2024 20:40, Nicholas Piggin wrote:
> >>> Using virtual time for announce ensures that guest visible effects
> >>> are deterministic and don't break replay.
> >>>
> >>> Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
> >>> ---
> >>> net/announce.c | 2 +-
> >>> 1 file changed, 1 insertion(+), 1 deletion(-)
> >>>
> >>> diff --git a/net/announce.c b/net/announce.c
> >>> index 9e99044422..70b5d5e822 100644
> >>> --- a/net/announce.c
> >>> +++ b/net/announce.c
> >>> @@ -187,7 +187,7 @@ static void qemu_announce_self_once(void *opaque)
> >>>
> >>> void qemu_announce_self(AnnounceTimer *timer, AnnounceParameters
> >>> *params)
> >>> {
> >>> - qemu_announce_timer_reset(timer, params, QEMU_CLOCK_REALTIME,
> >>> + qemu_announce_timer_reset(timer, params, QEMU_CLOCK_VIRTUAL,
> >>> qemu_announce_self_once, timer);
> >>> if (params->rounds) {
> >>> qemu_announce_self_once(timer);
> >
- Re: [PATCH v4 06/24] chardev: set record/replay on the base device of a muxed device, (continued)
- [PATCH v4 07/24] replay: Fix migration use of clock, Nicholas Piggin, 2024/03/11
- [PATCH v4 08/24] replay: Fix migration replay_mutex locking, Nicholas Piggin, 2024/03/11
- [PATCH v4 09/24] virtio-net: Use replay_schedule_bh_event for bhs that affect machine state, Nicholas Piggin, 2024/03/11
- [PATCH v4 10/24] virtio-net: Use virtual time for RSC timers, Nicholas Piggin, 2024/03/11
- [PATCH v4 11/24] net: Use virtual time for net announce, Nicholas Piggin, 2024/03/11
[PATCH v4 12/24] savevm: Fix load_snapshot error path crash, Nicholas Piggin, 2024/03/11
[PATCH v4 13/24] tests/avocado: replay_linux.py remove the timeout expected guards, Nicholas Piggin, 2024/03/11
[PATCH v4 15/24] tests/avocado: reverse_debugging.py add test for x86-64 q35 machine, Nicholas Piggin, 2024/03/11
[PATCH v4 17/24] tests/avocado: reverse_debugging.py stop VM before sampling icount, Nicholas Piggin, 2024/03/11
[PATCH v4 18/24] tests/avocado: reverse_debugging reverse-step at the end of the trace, Nicholas Piggin, 2024/03/11
[PATCH v4 14/24] tests/avocado/reverse_debugging.py: mark aarch64 and pseries as not flaky, Nicholas Piggin, 2024/03/11
[PATCH v4 16/24] tests/avocado: reverse_debugging.py verify addresses between record and replay, Nicholas Piggin, 2024/03/11
[PATCH v4 19/24] tests/avocado: reverse_debugging.py add snapshot testing, Nicholas Piggin, 2024/03/11
[PATCH v4 21/24] tests/avocado: reverse_debugging.py test auto-snapshot mode, Nicholas Piggin, 2024/03/11