[dpdk-dev] [PATCH (v20.08) 0/9] vhost: improve Vhost/vDPA device init
Maxime Coquelin
maxime.coquelin at redhat.com
Thu May 14 10:02:09 CEST 2020
The goal of this series is to make the Vhost/vDPA
device init more robust by adding support to a new
protocol feature.
VHOST_USER_SET_STATUS is received by the backend
when the driver updates the Virtio device status
register.
For now this series only deal with the DRIVER_OK
bit, which indicates that the driver is done with
the device initialization.
For example, such information helps the Vhost
backend to know when it can call de dev_conf vDPA
callback. It avoids doing an hazardous workaround
which only work with Qemu and not Virtio-user PMD.
Before adding support for this new request, some
clean-ups and refactoring are done as preliminary
steps to make the code more easily readable.
Some vDPA APIs are also made mandatory, and the
IFC driver modified to add support for the
.set_vring_state() callback. I think this one
should be mandatory as if the frontent requests
for one queue to be disabled, I think the vDPA
device should no more be processing it.
Note that the VHOST_USER_PROTOCOL_F_STATUS
protocol feature requires frontend support.
For Qemu, it has been posted for reviews and
can be found here:
https://patchwork.ozlabs.org/project/qemu-devel/patch/20200514073332.1434576-1-maxime.coquelin@redhat.com/
For Virtio-user PMD, it is being developped
and will be posted soon.
Maxime Coquelin (9):
vhost: fix virtio ready flag check
vhost: refactor Virtio ready check
vdpa/ifc: add support to vDPA queue enable
vhost: make some vDPA callbacks mandatory
vhost: check vDPA configuration succeed
vhost: add support for virtio status
vdpa/ifc: enable status protocol feature
vdpa/mlx5: enable status protocol feature
vhost: only use vDPA config workaround if needed
drivers/vdpa/ifc/base/ifcvf.c | 9 +++
drivers/vdpa/ifc/base/ifcvf.h | 4 ++
drivers/vdpa/ifc/ifcvf_vdpa.c | 26 ++++++++-
drivers/vdpa/mlx5/mlx5_vdpa.c | 4 +-
lib/librte_vhost/rte_vdpa.h | 14 +++--
lib/librte_vhost/rte_vhost.h | 4 ++
lib/librte_vhost/socket.c | 6 +-
lib/librte_vhost/vdpa.c | 10 ++++
lib/librte_vhost/vhost.c | 3 +-
lib/librte_vhost/vhost.h | 9 +++
lib/librte_vhost/vhost_user.c | 103 +++++++++++++++++++++++++++-------
lib/librte_vhost/vhost_user.h | 6 +-
12 files changed, 162 insertions(+), 36 deletions(-)
--
2.25.4
More information about the dev
mailing list