Message ID | 20230203191142.362623-11-eperezma@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Dynamycally switch to vhost shadow virtqueues at vdpa net migration | expand |
diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c index 309861e56c..a0c4d5de2c 100644 --- a/net/vhost-vdpa.c +++ b/net/vhost-vdpa.c @@ -952,6 +952,15 @@ int net_init_vhost_vdpa(const Netdev *netdev, const char *name, iova_range); if (!ncs[i]) goto err; + + if (i == 0) { + VhostVDPAState *s = DO_UPCAST(VhostVDPAState, nc, ncs[0]); + + if (!s->vhost_vdpa.dev->migration_blocker) { + vhost_vdpa_net_valid_svq_features(features, + &s->vhost_vdpa.dev->migration_blocker); + } + } } if (has_cvq) {
A vdpa net device must initialize with SVQ in order to be migratable at this moment, and initialization code verifies some conditions. If the device is not initialized with the x-svq parameter, it will not expose _F_LOG so the vhost subsystem will block VM migration from its initialization. Next patches change this, so we need to verify migration conditions differently. QEMU only supports a subset of net features in SVQ, and it cannot migrate state that cannot track or restore in the destination. Add a migration blocker if the device offer an unsupported feature. Signed-off-by: Eugenio PĂ©rez <eperezma@redhat.com> --- net/vhost-vdpa.c | 9 +++++++++ 1 file changed, 9 insertions(+)