From: Eugenio Perez Martin <eperezma@redhat.com>
To: Jonah Palmer <jonah.palmer@oracle.com>
Cc: qemu-devel@nongnu.org, eduardo@habkost.net,
marcel.apfelbaum@gmail.com, philmd@linaro.org,
wangyanan55@huawei.com, zhao1.liu@intel.com, mst@redhat.com,
sgarzare@redhat.com, jasowang@redhat.com, leiyang@redhat.com,
si-wei.liu@oracle.com, boris.ostrovsky@oracle.com,
armbru@redhat.com
Subject: Re: [RFC v2 08/14] virtio-net: detect VirtIONet status mid-migration change
Date: Tue, 24 Mar 2026 12:26:19 +0100 [thread overview]
Message-ID: <CAJaqyWebEJN0GL=5yotWcF=48FW6r2yO+q21ZZ-7DeawbTNocQ@mail.gmail.com> (raw)
In-Reply-To: <20260320142015.3856652-9-jonah.palmer@oracle.com>
On Fri, Mar 20, 2026 at 3:21 PM Jonah Palmer <jonah.palmer@oracle.com> wrote:
>
> Save VirtIONet's status field during early migration and compare it
> again during stop-and-copy.
>
> VirtIONet keeps its own status bits here, including VIRTIO_NET_S_LINK_UP
> and VIRTIO_NET_S_ANNOUNCE.
>
These are particular to the device, so we don't need to migrate them.
If any, we should check if the destination device changed the link
state so we can update the guest, but we don't do that as far as I
know.
> Signed-off-by: Jonah Palmer <jonah.palmer@oracle.com>
> ---
> hw/net/virtio-net.c | 6 ++++++
> include/hw/virtio/virtio-net.h | 2 ++
> 2 files changed, 8 insertions(+)
>
> diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c
> index 2dd130777e..88ce33b1d2 100644
> --- a/hw/net/virtio-net.c
> +++ b/hw/net/virtio-net.c
> @@ -3872,6 +3872,7 @@ static int virtio_net_early_pre_save(void *opaque)
> VirtIONetMigration *vnet_mig = n->migration;
>
> vdev_mig->status_early = vdev->status;
> + vnet_mig->status_early = n->status;
>
> /* VirtIODevice config buffer snapshot */
> g_free(vdev_mig->config_early);
> @@ -4304,6 +4305,11 @@ static bool virtio_net_has_delta(VirtIONet *n, VirtIODevice *vdev)
> return true;
> }
>
> + /* Has the VirtIONet's status changed? */
> + if (n->status != vnet_mig->status_early) {
> + return true;
> + }
> +
> /* Has the VirtIONet's MAC info changed? */
> if (memcmp(n->mac, vnet_mig->mac_early, ETH_ALEN) != 0) {
> return true;
> diff --git a/include/hw/virtio/virtio-net.h b/include/hw/virtio/virtio-net.h
> index 1e1f1a3995..59345f1811 100644
> --- a/include/hw/virtio/virtio-net.h
> +++ b/include/hw/virtio/virtio-net.h
> @@ -169,6 +169,7 @@ typedef struct VirtIONetQueue {
>
> /**
> * struct VirtIONetMigration - VirtIONet migration structure
> + * @status_early: VirtIONet status snapshot.
> * @mac_early: MAC address early migration snapshot.
> * @mtable_in_use_early: In-use MAC table entries.
> * @mtable_uni_overflow_early: Unicast overflow MAC table entries.
> @@ -176,6 +177,7 @@ typedef struct VirtIONetQueue {
> * @mtable_macs_early: MAC table entries.
> */
> typedef struct VirtIONetMigration {
> + uint16_t status_early;
> uint8_t mac_early[ETH_ALEN];
> uint32_t mtable_in_use_early;
> uint8_t mtable_uni_overflow_early;
> --
> 2.51.0
>
next prev parent reply other threads:[~2026-03-24 11:27 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-20 14:20 [RFC v2 00/14] virtio-net: early VMStateDescription live migration support Jonah Palmer
2026-03-20 14:20 ` [RFC v2 01/14] machine,virtio-net: add early-mig property Jonah Palmer
2026-03-23 10:25 ` Eugenio Perez Martin
2026-03-24 14:07 ` Jonah Palmer
2026-03-26 8:02 ` Eugenio Perez Martin
2026-03-20 14:20 ` [RFC v2 02/14] virtio, virtio-net: add initial early VMSD for setup-phase migration Jonah Palmer via qemu development
2026-03-24 9:27 ` [RFC v2 02/14] virtio,virtio-net: " Eugenio Perez Martin
2026-03-24 14:28 ` Jonah Palmer
2026-03-24 14:38 ` Eugenio Perez Martin
2026-03-24 17:16 ` Jonah Palmer
2026-03-20 14:20 ` [RFC v2 03/14] virtio,virtio-net: virtio-delta VMSD - VQ state Jonah Palmer
2026-03-20 14:20 ` [RFC v2 04/14] virtio-net: detect VirtIODevice status mid-migration change Jonah Palmer
2026-03-24 10:45 ` Eugenio Perez Martin
2026-03-24 15:01 ` Jonah Palmer
2026-03-26 10:08 ` Eugenio Perez Martin
2026-03-20 14:20 ` [RFC v2 05/14] virtio-net: detect VirtIODevice config buffer " Jonah Palmer
2026-03-24 10:48 ` Eugenio Perez Martin
2026-03-24 15:25 ` Jonah Palmer
2026-03-20 14:20 ` [RFC v2 06/14] virtio-net: detect VirtIONet MAC addr " Jonah Palmer
2026-03-20 14:20 ` [RFC v2 07/14] virtio-net: detect VirtIONet MAC table mid-migration changes Jonah Palmer
2026-03-20 14:20 ` [RFC v2 08/14] virtio-net: detect VirtIONet status mid-migration change Jonah Palmer
2026-03-24 11:26 ` Eugenio Perez Martin [this message]
2026-03-24 16:23 ` Jonah Palmer
2026-03-26 10:20 ` Eugenio Perez Martin
2026-03-20 14:20 ` [RFC v2 09/14] virtio-net: detect VirtIONet Rx filter mid-migration changes Jonah Palmer
2026-03-20 14:20 ` [RFC v2 10/14] virtio-net: detect VirtIONet VLAN filter table changes Jonah Palmer
2026-03-20 14:20 ` [RFC v2 11/14] virtio-net: detect VirtIONet guest offload & MQ mid-migration changes Jonah Palmer
2026-03-20 14:20 ` [RFC v2 12/14] virtio-net: detect RSS state " Jonah Palmer
2026-03-20 14:20 ` [RFC v2 13/14] virtio-net: detect pending Tx work for VQs " Jonah Palmer
2026-03-24 11:35 ` Eugenio Perez Martin
2026-03-24 16:47 ` Jonah Palmer
2026-03-26 10:30 ` Eugenio Perez Martin
2026-03-20 14:20 ` [RFC v2 14/14] virtio-net, vhost-net: early migration support for vhost-net Jonah Palmer via qemu development
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='CAJaqyWebEJN0GL=5yotWcF=48FW6r2yO+q21ZZ-7DeawbTNocQ@mail.gmail.com' \
--to=eperezma@redhat.com \
--cc=armbru@redhat.com \
--cc=boris.ostrovsky@oracle.com \
--cc=eduardo@habkost.net \
--cc=jasowang@redhat.com \
--cc=jonah.palmer@oracle.com \
--cc=leiyang@redhat.com \
--cc=marcel.apfelbaum@gmail.com \
--cc=mst@redhat.com \
--cc=philmd@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=sgarzare@redhat.com \
--cc=si-wei.liu@oracle.com \
--cc=wangyanan55@huawei.com \
--cc=zhao1.liu@intel.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox