Message ID | 20230208094253.702672-10-eperezma@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Dynamycally switch to vhost shadow virtqueues at vdpa net migration | expand |
On 2/8/2023 1:42 AM, Eugenio Pérez wrote: > Devices with CVQ needs to migrate state beyond vq state. Leaving this > to future series. > > Signed-off-by: Eugenio Pérez <eperezma@redhat.com> > --- > net/vhost-vdpa.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c > index bca13f97fd..309861e56c 100644 > --- a/net/vhost-vdpa.c > +++ b/net/vhost-vdpa.c > @@ -955,11 +955,17 @@ int net_init_vhost_vdpa(const Netdev *netdev, const char *name, > } > > if (has_cvq) { > + VhostVDPAState *s; > + > nc = net_vhost_vdpa_init(peer, TYPE_VHOST_VDPA, name, > vdpa_device_fd, i, 1, false, > opts->x_svq, iova_range); > if (!nc) > goto err; > + > + s = DO_UPCAST(VhostVDPAState, nc, nc); > + error_setg(&s->vhost_vdpa.dev->migration_blocker, > + "net vdpa cannot migrate with MQ feature"); Not sure how this can work: migration_blocker is only checked and gets added from vhost_dev_init(), which is already done through net_vhost_vdpa_init() above. Same question applies to the next patch of this series. Thanks, -Siwei > } > > return 0;
On Mon, Feb 13, 2023 at 7:51 AM Si-Wei Liu <si-wei.liu@oracle.com> wrote: > > > > On 2/8/2023 1:42 AM, Eugenio Pérez wrote: > > Devices with CVQ needs to migrate state beyond vq state. Leaving this > > to future series. > > > > Signed-off-by: Eugenio Pérez <eperezma@redhat.com> > > --- > > net/vhost-vdpa.c | 6 ++++++ > > 1 file changed, 6 insertions(+) > > > > diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c > > index bca13f97fd..309861e56c 100644 > > --- a/net/vhost-vdpa.c > > +++ b/net/vhost-vdpa.c > > @@ -955,11 +955,17 @@ int net_init_vhost_vdpa(const Netdev *netdev, const char *name, > > } > > > > if (has_cvq) { > > + VhostVDPAState *s; > > + > > nc = net_vhost_vdpa_init(peer, TYPE_VHOST_VDPA, name, > > vdpa_device_fd, i, 1, false, > > opts->x_svq, iova_range); > > if (!nc) > > goto err; > > + > > + s = DO_UPCAST(VhostVDPAState, nc, nc); > > + error_setg(&s->vhost_vdpa.dev->migration_blocker, > > + "net vdpa cannot migrate with MQ feature"); > Not sure how this can work: migration_blocker is only checked and gets > added from vhost_dev_init(), which is already done through > net_vhost_vdpa_init() above. Same question applies to the next patch of > this series. > Good catch, fixing in v3. Thanks!
在 2023/2/8 17:42, Eugenio Pérez 写道: > Devices with CVQ needs to migrate state beyond vq state. Leaving this > to future series. I may miss something but what is missed to support CVQ/MQ? Thanks > > Signed-off-by: Eugenio Pérez <eperezma@redhat.com> > --- > net/vhost-vdpa.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c > index bca13f97fd..309861e56c 100644 > --- a/net/vhost-vdpa.c > +++ b/net/vhost-vdpa.c > @@ -955,11 +955,17 @@ int net_init_vhost_vdpa(const Netdev *netdev, const char *name, > } > > if (has_cvq) { > + VhostVDPAState *s; > + > nc = net_vhost_vdpa_init(peer, TYPE_VHOST_VDPA, name, > vdpa_device_fd, i, 1, false, > opts->x_svq, iova_range); > if (!nc) > goto err; > + > + s = DO_UPCAST(VhostVDPAState, nc, nc); > + error_setg(&s->vhost_vdpa.dev->migration_blocker, > + "net vdpa cannot migrate with MQ feature"); > } > > return 0;
On Wed, Feb 22, 2023 at 5:01 AM Jason Wang <jasowang@redhat.com> wrote: > > > 在 2023/2/8 17:42, Eugenio Pérez 写道: > > Devices with CVQ needs to migrate state beyond vq state. Leaving this > > to future series. > > > I may miss something but what is missed to support CVQ/MQ? > To restore all the device state set by CVQ in the migration source (MAC, MQ, ...) before data vqs start. We don't have a reliable way to not start data vqs until the device [1]. Thanks! [1] https://lists.gnu.org/archive/html/qemu-devel/2023-01/msg02652.html > Thanks > > > > > > Signed-off-by: Eugenio Pérez <eperezma@redhat.com> > > --- > > net/vhost-vdpa.c | 6 ++++++ > > 1 file changed, 6 insertions(+) > > > > diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c > > index bca13f97fd..309861e56c 100644 > > --- a/net/vhost-vdpa.c > > +++ b/net/vhost-vdpa.c > > @@ -955,11 +955,17 @@ int net_init_vhost_vdpa(const Netdev *netdev, const char *name, > > } > > > > if (has_cvq) { > > + VhostVDPAState *s; > > + > > nc = net_vhost_vdpa_init(peer, TYPE_VHOST_VDPA, name, > > vdpa_device_fd, i, 1, false, > > opts->x_svq, iova_range); > > if (!nc) > > goto err; > > + > > + s = DO_UPCAST(VhostVDPAState, nc, nc); > > + error_setg(&s->vhost_vdpa.dev->migration_blocker, > > + "net vdpa cannot migrate with MQ feature"); > > } > > > > return 0; >
在 2023/2/22 15:28, Eugenio Perez Martin 写道: > On Wed, Feb 22, 2023 at 5:01 AM Jason Wang <jasowang@redhat.com> wrote: >> >> 在 2023/2/8 17:42, Eugenio Pérez 写道: >>> Devices with CVQ needs to migrate state beyond vq state. Leaving this >>> to future series. >> >> I may miss something but what is missed to support CVQ/MQ? >> > To restore all the device state set by CVQ in the migration source > (MAC, MQ, ...) before data vqs start. We don't have a reliable way to > not start data vqs until the device [1]. > > Thanks! > > [1] https://lists.gnu.org/archive/html/qemu-devel/2023-01/msg02652.html Right. It might be mention this defect in either the change log or somewhere in the code as a comment. (Btw, I think we should fix those vDPA drivers). Thanks > >> Thanks >> >> >>> Signed-off-by: Eugenio Pérez <eperezma@redhat.com> >>> --- >>> net/vhost-vdpa.c | 6 ++++++ >>> 1 file changed, 6 insertions(+) >>> >>> diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c >>> index bca13f97fd..309861e56c 100644 >>> --- a/net/vhost-vdpa.c >>> +++ b/net/vhost-vdpa.c >>> @@ -955,11 +955,17 @@ int net_init_vhost_vdpa(const Netdev *netdev, const char *name, >>> } >>> >>> if (has_cvq) { >>> + VhostVDPAState *s; >>> + >>> nc = net_vhost_vdpa_init(peer, TYPE_VHOST_VDPA, name, >>> vdpa_device_fd, i, 1, false, >>> opts->x_svq, iova_range); >>> if (!nc) >>> goto err; >>> + >>> + s = DO_UPCAST(VhostVDPAState, nc, nc); >>> + error_setg(&s->vhost_vdpa.dev->migration_blocker, >>> + "net vdpa cannot migrate with MQ feature"); >>> } >>> >>> return 0;
diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c index bca13f97fd..309861e56c 100644 --- a/net/vhost-vdpa.c +++ b/net/vhost-vdpa.c @@ -955,11 +955,17 @@ int net_init_vhost_vdpa(const Netdev *netdev, const char *name, } if (has_cvq) { + VhostVDPAState *s; + nc = net_vhost_vdpa_init(peer, TYPE_VHOST_VDPA, name, vdpa_device_fd, i, 1, false, opts->x_svq, iova_range); if (!nc) goto err; + + s = DO_UPCAST(VhostVDPAState, nc, nc); + error_setg(&s->vhost_vdpa.dev->migration_blocker, + "net vdpa cannot migrate with MQ feature"); } return 0;
Devices with CVQ needs to migrate state beyond vq state. Leaving this to future series. Signed-off-by: Eugenio Pérez <eperezma@redhat.com> --- net/vhost-vdpa.c | 6 ++++++ 1 file changed, 6 insertions(+)