vDPA device is a device that uses a datapath which complies with the virtio specifications with vendor specific control path. vDPA devices can be both physically located on the hardware or emulated by software. This RFC introduce the vDPA support in qemu TODO: 1) vIOMMU support 2) live migration support
change from v1 separate the patch of introduce vhost_set_vring_ready method separate the patch of qemu_get_peer separate the patch of vhost_set_state introduce the new macro specific for vDPA in configure introduce the function to pass the fd from cmdline introduce the docmation in qemu-options.hx the other comments form last version change from v2 change the work process of vhost set status introduce vhost_get_device_id test based on qemu v5.0.0-rc4 the other comments from last version Cindy Lu (3): net: introduce qemu_get_peer vhost_net: use the function qemu_get_peer vhost-backend: export the vhost backend helper Jason Wang (3): virtio-bus: introduce queue_enabled method virtio-pci: implement queue_enabled method vhost: introduce vhost_set_vring_ready method Tiwei Bie (2): vhost-vdpa: introduce vhost-vdpa backend vhost-vdpa: introduce vhost-vdpa net client configure | 21 ++ hw/net/vhost_net-stub.c | 9 + hw/net/vhost_net.c | 72 +++++- hw/virtio/Makefile.objs | 1 + hw/virtio/vhost-backend.c | 39 +-- hw/virtio/vhost-vdpa.c | 399 ++++++++++++++++++++++++++++++ hw/virtio/vhost.c | 37 ++- hw/virtio/virtio-pci.c | 13 + hw/virtio/virtio.c | 6 + include/hw/virtio/vhost-backend.h | 38 ++- include/hw/virtio/vhost-vdpa.h | 26 ++ include/hw/virtio/vhost.h | 2 + include/hw/virtio/virtio-bus.h | 4 + include/net/net.h | 1 + include/net/vhost-vdpa.h | 19 ++ include/net/vhost_net.h | 3 +- net/Makefile.objs | 2 +- net/clients.h | 2 + net/net.c | 9 + net/vhost-vdpa.c | 235 ++++++++++++++++++ qapi/net.json | 26 +- qemu-options.hx | 15 ++ 22 files changed, 951 insertions(+), 28 deletions(-) create mode 100644 hw/virtio/vhost-vdpa.c create mode 100644 include/hw/virtio/vhost-vdpa.h create mode 100644 include/net/vhost-vdpa.h create mode 100644 net/vhost-vdpa.c -- 2.21.1