From: Peter Xu <peterx@redhat.com>
To: qemu-devel@nongnu.org
Cc: "Avihai Horon" <avihaih@nvidia.com>,
"Cédric Le Goater" <clg@redhat.com>,
"Fabiano Rosas" <farosas@suse.de>,
"Alex Williamson" <alex.williamson@redhat.com>
Subject: Re: [PATCH v3 0/8] Migration: Make misc.h helpers available for whole VM lifecycle
Date: Tue, 29 Oct 2024 16:22:35 -0400 [thread overview]
Message-ID: <ZyFECyaVpNwfnPiI@x1n> (raw)
In-Reply-To: <20241024213056.1395400-1-peterx@redhat.com>
On Thu, Oct 24, 2024 at 05:30:48PM -0400, Peter Xu wrote:
> Based-on: <20241024165627.1372621-1-peterx@redhat.com>
> CI: https://gitlab.com/peterx/qemu/-/pipelines/1511349805
>
> This is a follow up of below patch from Avihai as a replacement:
>
> https://lore.kernel.org/qemu-devel/20241020130108.27148-3-avihaih@nvidia.com/
>
> This is v3 of the series, and it happened again: changelog doesn't make
> sense to compare to v2 because it's rewritten. Meanwhile, now this series
> is based on the other TYPE_SINGLETON series I posted just now:
>
> https://lore.kernel.org/r/20241024165627.1372621-1-peterx@redhat.com
>
> It turns out I found more things to cleanup, as the versions spin up.
>
> Patch 1: I found that object_ref() in migration thread is actually also
> racy.. this should fix it.
>
> Patch 2-7: It turns out I decided to clean things up first, then it'll
> make my last patch easier on adding the mutex protection for
> the current_migration reference
>
> Patch 8: The fix for NULL-dereference / race for the exported
> functions. VFIO can hit it only because VFIO's specialty
> in using migration helpers in vmstate handlers, I guess. I
> found most functions always safe because even if they're used
> outside migration/ they're most likely still invoked with
> migration thread context. So I found only two functions that
> really need protections, exactly what VFIO is using.
I queued patch 1-5.
Ideally 6+7 can be a single patch, then we don't need to move DEVICE into
migration_is_active() at all. Also that might break VFIO as Avihai pointed
out on VGA sync. Avihai, I'd still appreciate if you could consider look
at vfio to behave like what kvm/vhost/.. is doing, by accepting log_sync()
before log_start().
Patch 8 still rely on singleton series, which will become rfc to be
reposted, so probably no rush on that.
>
> Comments welcomed, thanks.
>
> Peter Xu (8):
> migration: Take migration object refcount earlier for threads
> migration: Unexport dirty_bitmap_mig_init()
> migration: Unexport ram_mig_init()
> migration: Drop migration_is_setup_or_active()
> migration: Drop migration_is_idle()
> migration: Drop migration_is_device()
> migration: Unexport migration_is_active()
> migration: Protect updates to current_migration with a mutex
>
> include/migration/misc.h | 11 +---
> migration/migration.h | 8 +++
> migration/ram.h | 1 +
> hw/vfio/common.c | 6 +-
> hw/virtio/virtio-mem.c | 2 +-
> migration/migration.c | 118 +++++++++++++++++++--------------------
> migration/ram.c | 7 +--
> net/vhost-vdpa.c | 3 +-
> system/dirtylimit.c | 3 +-
> system/qdev-monitor.c | 4 +-
> 10 files changed, 81 insertions(+), 82 deletions(-)
>
> --
> 2.45.0
>
--
Peter Xu
prev parent reply other threads:[~2024-10-29 20:23 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-24 21:30 [PATCH v3 0/8] Migration: Make misc.h helpers available for whole VM lifecycle Peter Xu
2024-10-24 21:30 ` [PATCH v3 1/8] migration: Take migration object refcount earlier for threads Peter Xu
2024-10-25 8:36 ` Cédric Le Goater
2024-10-29 18:48 ` Fabiano Rosas
2024-10-24 21:30 ` [PATCH v3 2/8] migration: Unexport dirty_bitmap_mig_init() Peter Xu
2024-10-29 18:48 ` Fabiano Rosas
2024-10-24 21:30 ` [PATCH v3 3/8] migration: Unexport ram_mig_init() Peter Xu
2024-10-25 8:36 ` Cédric Le Goater
2024-10-29 18:49 ` Fabiano Rosas
2024-10-24 21:30 ` [PATCH v3 4/8] migration: Drop migration_is_setup_or_active() Peter Xu
2024-10-25 8:59 ` Cédric Le Goater
2024-10-29 19:04 ` Fabiano Rosas
2024-10-24 21:30 ` [PATCH v3 5/8] migration: Drop migration_is_idle() Peter Xu
2024-10-25 12:39 ` Cédric Le Goater
2024-10-29 19:07 ` Fabiano Rosas
2024-10-24 21:30 ` [PATCH v3 6/8] migration: Drop migration_is_device() Peter Xu
2024-10-24 21:30 ` [PATCH v3 7/8] migration: Unexport migration_is_active() Peter Xu
2024-10-28 7:43 ` Avihai Horon
2024-10-28 15:45 ` Peter Xu
2024-10-28 16:41 ` Avihai Horon
2024-10-28 16:58 ` Peter Xu
2024-10-28 17:20 ` Avihai Horon
2024-10-28 19:06 ` Peter Xu
2024-10-30 14:39 ` Avihai Horon
2024-10-30 14:43 ` Peter Xu
2024-10-24 21:30 ` [PATCH v3 8/8] migration: Protect updates to current_migration with a mutex Peter Xu
2024-10-25 12:50 ` Cédric Le Goater
2024-10-28 15:50 ` Peter Xu
2024-11-04 15:26 ` Cédric Le Goater
2024-10-29 20:22 ` Peter Xu [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZyFECyaVpNwfnPiI@x1n \
--to=peterx@redhat.com \
--cc=alex.williamson@redhat.com \
--cc=avihaih@nvidia.com \
--cc=clg@redhat.com \
--cc=farosas@suse.de \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.