[libvirt PATCH v3] qemu: support multiqueue for vdpa net device

Martin Kletzander mkletzan at redhat.com
Wed Mar 9 10:12:54 UTC 2022


On Tue, Mar 08, 2022 at 11:25:52AM -0600, Jonathon Jongsma wrote:
>The vdpa device supports multiqueue, so remove the restriction from
>qemuDomainValidateActualNetDef() that prevents us from using this
>functionality.
>
>Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2024406
>
>Signed-off-by: Jonathon Jongsma <jjongsma at redhat.com>
>---
>Changes in v3:
> - Do not set the model type in virDomainNetDefParseXML(). Other virtio devices
>   require the model to be explicitly set to 'virtio' in the xml definition in
>   order to parse the virtio driver options, and it doesn't make sense to treat
>   the vdpa device differently. If we want this behavior to change, it should
>   probably be changed so that it applies to all devices that default to a
>   virtio device model.
>
>Changes in v2:
> - remove error message in virDomainNetDefParseXML(). The model is already
>   checked in the post parse validation step.
>
> src/qemu/qemu_domain.c                        |  3 +-
> .../net-vdpa-multiqueue.x86_64-latest.args    | 36 +++++++++++++++++++
> .../qemuxml2argvdata/net-vdpa-multiqueue.xml  | 30 ++++++++++++++++
> tests/qemuxml2argvtest.c                      |  1 +
> .../net-vdpa-multiqueue.xml                   | 36 +++++++++++++++++++
> tests/qemuxml2xmltest.c                       |  1 +
> 6 files changed, 106 insertions(+), 1 deletion(-)
> create mode 100644 tests/qemuxml2argvdata/net-vdpa-multiqueue.x86_64-latest.args
> create mode 100644 tests/qemuxml2argvdata/net-vdpa-multiqueue.xml
> create mode 100644 tests/qemuxml2xmloutdata/net-vdpa-multiqueue.xml
>

The XMLs could be identical with the output one being a symlink to the
input one, but that's nitpicking and/or can be done later.

>diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
>index acc76c1cd6..6b61fefb8f 100644
>--- a/src/qemu/qemu_domain.c
>+++ b/src/qemu/qemu_domain.c
>@@ -4523,7 +4523,8 @@ qemuDomainValidateActualNetDef(const virDomainNetDef *net,
>               actualType == VIR_DOMAIN_NET_TYPE_BRIDGE ||
>               actualType == VIR_DOMAIN_NET_TYPE_DIRECT ||
>               actualType == VIR_DOMAIN_NET_TYPE_ETHERNET ||
>-              actualType == VIR_DOMAIN_NET_TYPE_VHOSTUSER)) {
>+              actualType == VIR_DOMAIN_NET_TYPE_VHOSTUSER ||
>+              actualType == VIR_DOMAIN_NET_TYPE_VDPA)) {
>             virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
>                            _("interface %s - multiqueue is not supported for network interfaces of type %s"),
>                            macstr, virDomainNetTypeToString(actualType));

Also the comment on top of this condition could be changed to account
for the change, but it was already invalid before, so... =)

Anyway, thanks for the patience with my reviews.

Reviewed-by: Martin Kletzander <mkletzan at redhat.com>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20220309/2d245edb/attachment.sig>


More information about the libvir-list mailing list