vDPA network devices allow high-performance networking in a virtual machine by providing a wire-speed data path. These devices require a vendor-specific host driver but the data path follows the virtio specification. The support for vDPA devices was recently added to qemu. This allows libvirt to support these devices. This patchset requires that the device is configured on the host with the appropriate vendor-specific driver. This will create a chardev on the host at e.g. /dev/vhost-vdpa-0. That chardev path can then be used to define a new interface with type=3D'vdpa'. Changes in v4: - rebased to latest master - added hotplug support - report vdpa devices in node device list Jonathon Jongsma (6): conf: Add support for vDPA network devices qemu: add vhost-vdpa capability qemu: add vdpa support qemu: add monitor functions for handling file descriptors qemu: support hotplug of vdpa devices Include vdpa devices in node device list docs/formatdomain.rst | 24 +++ docs/schemas/domaincommon.rng | 15 ++ include/libvirt/libvirt-nodedev.h | 1 + src/conf/domain_conf.c | 31 ++++ src/conf/domain_conf.h | 4 + src/conf/netdev_bandwidth_conf.c | 1 + src/conf/node_device_conf.c | 5 + src/conf/node_device_conf.h | 4 +- src/conf/virnodedeviceobj.c | 4 +- src/libxl/libxl_conf.c | 1 + src/libxl/xen_common.c | 1 + src/lxc/lxc_controller.c | 1 + src/lxc/lxc_driver.c | 3 + src/lxc/lxc_process.c | 1 + src/node_device/node_device_udev.c | 16 ++ src/qemu/qemu_capabilities.c | 4 + src/qemu/qemu_capabilities.h | 3 + src/qemu/qemu_command.c | 36 +++- src/qemu/qemu_command.h | 3 +- src/qemu/qemu_domain.c | 6 +- src/qemu/qemu_hotplug.c | 73 +++++++- src/qemu/qemu_interface.c | 25 +++ src/qemu/qemu_interface.h | 2 + src/qemu/qemu_migration.c | 10 +- src/qemu/qemu_monitor.c | 93 ++++++++++ src/qemu/qemu_monitor.h | 41 +++++ src/qemu/qemu_monitor_json.c | 173 ++++++++++++++++++ src/qemu/qemu_monitor_json.h | 12 ++ src/qemu/qemu_process.c | 2 + src/qemu/qemu_validate.c | 15 ++ src/vmx/vmx.c | 1 + .../caps_5.1.0.x86_64.xml | 1 + .../caps_5.2.0.x86_64.xml | 1 + tests/qemuhotplugmock.c | 9 + tests/qemuhotplugtest.c | 16 ++ .../qemuhotplug-interface-vdpa.xml | 4 + .../qemuhotplug-base-live+interface-vdpa.xml | 57 ++++++ .../net-vdpa.x86_64-latest.args | 37 ++++ tests/qemuxml2argvdata/net-vdpa.xml | 28 +++ tests/qemuxml2argvmock.c | 11 +- tests/qemuxml2argvtest.c | 1 + tests/qemuxml2xmloutdata/net-vdpa.xml | 34 ++++ tests/qemuxml2xmltest.c | 1 + tools/virsh-domain.c | 1 + tools/virsh-nodedev.c | 3 + 45 files changed, 799 insertions(+), 16 deletions(-) create mode 100644 tests/qemuhotplugtestdevices/qemuhotplug-interface-vdpa.x= ml create mode 100644 tests/qemuhotplugtestdomains/qemuhotplug-base-live+interf= ace-vdpa.xml create mode 100644 tests/qemuxml2argvdata/net-vdpa.x86_64-latest.args create mode 100644 tests/qemuxml2argvdata/net-vdpa.xml create mode 100644 tests/qemuxml2xmloutdata/net-vdpa.xml --=20 2.26.2