[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH for 9.0 11/12] vdpa: add vhost_vdpa_net_switchover_ack_needed
From: |
Eugenio Pérez |
Subject: |
[PATCH for 9.0 11/12] vdpa: add vhost_vdpa_net_switchover_ack_needed |
Date: |
Fri, 15 Dec 2023 18:28:29 +0100 |
Use migration switchover ack capability to make sure QEMU has mapped all
the guest memory to the device before the source stops the VM and
attempts to complete the migration.
All net vdpa devices support this early map of guest memory, so return
always true.
Signed-off-by: Eugenio Pérez <eperezma@redhat.com>
---
include/net/net.h | 2 ++
net/vhost-vdpa.c | 6 ++++++
2 files changed, 8 insertions(+)
diff --git a/include/net/net.h b/include/net/net.h
index 68282dde31..f8c65dcb86 100644
--- a/include/net/net.h
+++ b/include/net/net.h
@@ -73,6 +73,7 @@ typedef bool (NetCheckPeerType)(NetClientState *, ObjectClass
*, Error **);
/* This can be called before start & pair, so get also the peer */
typedef int (NetMigrationLoadSetup)(NetClientState *, struct NICState *);
typedef int (NetMigrationLoadCleanup)(NetClientState *, struct NICState *);
+typedef bool (NetMigrationSwichoverAckNeeded)(const NetClientState *);
typedef struct NetClientInfo {
NetClientDriver type;
@@ -104,6 +105,7 @@ typedef struct NetClientInfo {
NetCheckPeerType *check_peer_type;
NetMigrationLoadSetup *load_setup;
NetMigrationLoadCleanup *load_cleanup;
+ NetMigrationSwichoverAckNeeded *load_switchover_ack_needed;
} NetClientInfo;
struct NetClientState {
diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c
index 7d4a99878e..9aa958c4f1 100644
--- a/net/vhost-vdpa.c
+++ b/net/vhost-vdpa.c
@@ -437,12 +437,18 @@ static int vhost_vdpa_net_load_cleanup(NetClientState
*nc, NICState *nic)
n->parent_obj.status & VIRTIO_CONFIG_S_DRIVER_OK);
}
+static bool vhost_vdpa_net_switchover_ack_needed(const NetClientState *nc)
+{
+ return true;
+}
+
static NetClientInfo net_vhost_vdpa_info = {
.type = NET_CLIENT_DRIVER_VHOST_VDPA,
.size = sizeof(VhostVDPAState),
.receive = vhost_vdpa_receive,
.start = vhost_vdpa_net_data_start,
.load = vhost_vdpa_net_data_load,
+ .load_switchover_ack_needed = vhost_vdpa_net_switchover_ack_needed,
.stop = vhost_vdpa_net_client_stop,
.cleanup = vhost_vdpa_cleanup,
.has_vnet_hdr = vhost_vdpa_has_vnet_hdr,
--
2.39.3
- Re: [PATCH for 9.0 07/12] vdpa: set backend capabilities at vhost_vdpa_init, (continued)
[PATCH for 9.0 09/12] vdpa: approve switchover after memory map in the migration destination, Eugenio Pérez, 2023/12/15
[PATCH for 9.0 03/12] vdpa: merge _begin_batch into _batch_begin_once, Eugenio Pérez, 2023/12/15
[PATCH for 9.0 10/12] vdpa: add vhost_vdpa_net_load_setup NetClient callback, Eugenio Pérez, 2023/12/15
[PATCH for 9.0 11/12] vdpa: add vhost_vdpa_net_switchover_ack_needed,
Eugenio Pérez <=
[PATCH for 9.0 12/12] virtio_net: register incremental migration handlers, Eugenio Pérez, 2023/12/15
Re: [PATCH for 9.0 00/12] Map memory at destination .load_setup in vDPA-net migration, Lei Yang, 2023/12/24
Re: [PATCH for 9.0 00/12] Map memory at destination .load_setup in vDPA-net migration, Michael S. Tsirkin, 2023/12/25