[RFC PATCH 02/10] qemu_capabilities: Added capabilites for qemu's "rss" and "hash".

Andrew Melnychenko posted 10 patches 4 years, 6 months ago
There is a newer version of this series
[RFC PATCH 02/10] qemu_capabilities: Added capabilites for qemu's "rss" and "hash".
Posted by Andrew Melnychenko 4 years, 6 months ago
Added qemu's property check for virtio-net.
And added capability QEMU_CAPS_VIRTIO_RSS.
With "rss" and "rss_hash_report" from domain config,
qemu should enable "rss" and "hash" for virtio-net.

Signed-off-by: Andrew Melnychenko <andrew@daynix.com>
---
 src/qemu/qemu_capabilities.c |  2 ++
 src/qemu/qemu_capabilities.h |  1 +
 src/qemu/qemu_validate.c     | 16 ++++++++++++++++
 3 files changed, 19 insertions(+)

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 9558938866..7cd6dab259 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -637,6 +637,7 @@ VIR_ENUM_IMPL(virQEMUCaps,
               "confidential-guest-support",
               "query-display-options",
               "s390-pv-guest",
+              "virtio-net.rss",
     );
 
 
@@ -1421,6 +1422,7 @@ static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsVirtioNet[] = {
     { "failover", QEMU_CAPS_VIRTIO_NET_FAILOVER, NULL },
     { "packed", QEMU_CAPS_VIRTIO_PACKED_QUEUES, NULL },
     { "acpi-index", QEMU_CAPS_ACPI_INDEX, NULL },
+    { "rss", QEMU_CAPS_VIRTIO_RSS, NULL },
 };
 
 static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsPCIeRootPort[] = {
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index 2b1bb57a49..6b2446fe5f 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -617,6 +617,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for syntax-check */
     QEMU_CAPS_MACHINE_CONFIDENTAL_GUEST_SUPPORT, /* -machine confidential-guest-support */
     QEMU_CAPS_QUERY_DISPLAY_OPTIONS, /* 'query-display-options' qmp command present */
     QEMU_CAPS_S390_PV_GUEST, /* -object s390-pv-guest,... */
+    QEMU_CAPS_VIRTIO_RSS, /* virtio-net rss feature */
 
     QEMU_CAPS_LAST /* this must always be the last item */
 } virQEMUCapsFlags;
diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c
index a964c8593d..265938a99f 100644
--- a/src/qemu/qemu_validate.c
+++ b/src/qemu/qemu_validate.c
@@ -1607,6 +1607,22 @@ qemuValidateDomainDeviceDefNetwork(const virDomainNetDef *net,
             }
         }
 
+        if (net->driver.virtio.rss &&
+            !virQEMUCapsGet(qemuCaps, QEMU_CAPS_VIRTIO_RSS)) {
+            virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+                           _("virtio rss is not supported with this "
+                             "QEMU binary"));
+            return -1;
+        }
+
+        if (net->driver.virtio.rss_hash_report &&
+            !virQEMUCapsGet(qemuCaps, QEMU_CAPS_VIRTIO_RSS)) {
+            virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+                           _("virtio rss hash report is not supported with this "
+                             "QEMU binary"));
+            return -1;
+        }
+
         if (net->mtu &&
             !virQEMUCapsGet(qemuCaps, QEMU_CAPS_VIRTIO_NET_HOST_MTU)) {
             virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
-- 
2.31.1

Re: [RFC PATCH 02/10] qemu_capabilities: Added capabilites for qemu's "rss" and "hash".
Posted by Michal Prívozník 4 years, 5 months ago
On 7/28/21 10:17 AM, Andrew Melnychenko wrote:
> Added qemu's property check for virtio-net.
> And added capability QEMU_CAPS_VIRTIO_RSS.
> With "rss" and "rss_hash_report" from domain config,
> qemu should enable "rss" and "hash" for virtio-net.
> 
> Signed-off-by: Andrew Melnychenko <andrew@daynix.com>
> ---
>  src/qemu/qemu_capabilities.c |  2 ++
>  src/qemu/qemu_capabilities.h |  1 +
>  src/qemu/qemu_validate.c     | 16 ++++++++++++++++
>  3 files changed, 19 insertions(+)
> 
> diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
> index 9558938866..7cd6dab259 100644
> --- a/src/qemu/qemu_capabilities.c
> +++ b/src/qemu/qemu_capabilities.c
> @@ -637,6 +637,7 @@ VIR_ENUM_IMPL(virQEMUCaps,
>                "confidential-guest-support",
>                "query-display-options",
>                "s390-pv-guest",
> +              "virtio-net.rss",

This needs to be updated because meanwhile we introduced comments to
these enum items.

Michal

Re: [RFC PATCH 02/10] qemu_capabilities: Added capabilites for qemu's "rss" and "hash".
Posted by Andrew Melnichenko 4 years, 5 months ago
Hi,
Ok, I'll update in RFC v2.

On Fri, Aug 20, 2021 at 3:57 PM Michal Prívozník <mprivozn@redhat.com>
wrote:

> On 7/28/21 10:17 AM, Andrew Melnychenko wrote:
> > Added qemu's property check for virtio-net.
> > And added capability QEMU_CAPS_VIRTIO_RSS.
> > With "rss" and "rss_hash_report" from domain config,
> > qemu should enable "rss" and "hash" for virtio-net.
> >
> > Signed-off-by: Andrew Melnychenko <andrew@daynix.com>
> > ---
> >  src/qemu/qemu_capabilities.c |  2 ++
> >  src/qemu/qemu_capabilities.h |  1 +
> >  src/qemu/qemu_validate.c     | 16 ++++++++++++++++
> >  3 files changed, 19 insertions(+)
> >
> > diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
> > index 9558938866..7cd6dab259 100644
> > --- a/src/qemu/qemu_capabilities.c
> > +++ b/src/qemu/qemu_capabilities.c
> > @@ -637,6 +637,7 @@ VIR_ENUM_IMPL(virQEMUCaps,
> >                "confidential-guest-support",
> >                "query-display-options",
> >                "s390-pv-guest",
> > +              "virtio-net.rss",
>
> This needs to be updated because meanwhile we introduced comments to
> these enum items.
>
> Michal
>
>