Message ID | 20230509154435.1410162-1-eperezma@redhat.com (mailing list archive) |
---|---|
Headers | show |
Series | Move ASID test to vhost-vdpa net initialization | expand |
QE tested this series with sanity testing on the vdpa_sim device, everything are works fine and there is no any new regression problems. Tested-by: Lei Yang <leiyang@redhat.com> On Tue, May 9, 2023 at 11:44 PM Eugenio Pérez <eperezma@redhat.com> wrote: > > QEMU v8.0 is able to switch dynamically between vhost-vdpa passthrough > and SVQ mode as long as the net device does not have CVQ. The net device > state followed (and migrated) by CVQ requires special care. > > A pre-requisite to add CVQ to that framework is to determine if devices with > CVQ are migratable or not at initialization time. The solution to it is to > always shadow only CVQ, and vq groups and ASID are used for that. > > However, current qemu version only checks ASID at device start (as "driver set > DRIVER_OK status bit"), not at device initialization. A check at > initialization time is required. Otherwise, the guest would be able to set > and remove migration blockers at will [1]. > > This series is a requisite for migration of vhost-vdpa net devices with CVQ. > However it already makes sense by its own, as it reduces the number of ioctls > at migration time, decreasing the error paths there. > > [1] https://lore.kernel.org/qemu-devel/2616f0cd-f9e8-d183-ea78-db1be4825d9c@redhat.com/ > --- > v3: > * Only record cvq_isolated, true if the device have cvq isolated in both !MQ > * and MQ configurations. > * Drop the cache of cvq group, it can be done on top > > v2: > * Take out the reset of the device from vhost_vdpa_cvq_is_isolated > (reported by Lei Yang). > * Expand patch messages by Stefano G. questions. > > Eugenio Pérez (5): > vdpa: Remove status in reset tracing > vdpa: add vhost_vdpa_reset_status_fd > vdpa: add vhost_vdpa_set_dev_features_fd > vdpa: return errno in vhost_vdpa_get_vring_group error > vdpa: move CVQ isolation check to net_init_vhost_vdpa > > include/hw/virtio/vhost-vdpa.h | 2 + > hw/virtio/vhost-vdpa.c | 78 ++++++++++----- > net/vhost-vdpa.c | 171 ++++++++++++++++++++++++++------- > hw/virtio/trace-events | 2 +- > 4 files changed, 192 insertions(+), 61 deletions(-) > > -- > 2.31.1 > >