[libvirt PATCH v5 0/6] Add support for vDPA network devices
Jonathon Jongsma
jjongsma at redhat.com
Tue Oct 20 20:10:27 UTC 2020
On Tue, 20 Oct 2020 15:16:48 -0400
Laine Stump <laine at redhat.com> wrote:
> On 10/14/20 1:08 PM, Jonathon Jongsma wrote:
> > 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'.
> >
> > Note that in order for hot-unplug to work properly, you may need to
> > apply a qemu patch[1] for now. Without the patch, qemu will not
> > close the fd properly and any subsequent attempts to use the vdpa
> > chardev will fail like this:
> >
> > virsh # attach-device guest1 vdpa.xml
> > error: Failed to attach device from vdpa.xml
> > error: Unable to open '/dev/vhost-vdpa-0' for vdpa device:
> > Device or reso= urce busy
> >
> > [1]
> > https://lists.nongnu.org/archive/html/qemu-devel/2020-09/msg06374.html
> >
> > Changes in v5:
> > - rebased to latest master
> > - fixed a case where qemuDomainObjExitMonitor() was not called on
> > an error p= ath
> > - Improved the nodedev xml. It now includes the path to the
> > chardev in /dev
> > - also updated the nodedev xml schema
> > - added sample nodedev-dumpxml output to the commit message of
> > patch #6
> >
> > 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
>
> Reviewed-by: Laine Stump <laine at redhat.com> for 1-5
>
> For patch 6 (the nodedev XML additions) I'm holding off on that in
> case anyone has an opinion on changes that should be made there (you
> had expressed some concern about it in IRC) (HINT HINT!!! ANY TAKERS?)
I wouldn't say "concern", necessarily. I just wanted to make sure that
there wasn't a different element name that might be more consistent
with other parts of the XML schema.
>
> I've done CI testing with all the patches, and am pushing 1-5 now,
> which will hopefully encourage wider testing among people with real
> hardware that's capable of VDPA.
>
>
>
> >
> > docs/formatdomain.rst | 24 +++
> > docs/formatnode.html.in | 9 +
> > docs/schemas/domaincommon.rng | 15 ++
> > docs/schemas/nodedev.rng | 10 +
> > 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 | 14 ++
> > src/conf/node_device_conf.h | 11 +-
> > 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 | 53 ++++++
> > src/qemu/qemu_capabilities.c | 2 +
> > src/qemu/qemu_capabilities.h | 1 +
> > src/qemu/qemu_command.c | 36 +++-
> > src/qemu/qemu_command.h | 3 +-
> > src/qemu/qemu_domain.c | 6 +-
> > src/qemu/qemu_hotplug.c | 75 +++++++-
> > 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 | 38 ++++
> > 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 +
> > 47 files changed, 870 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
> >
>
More information about the libvir-list
mailing list