On Thu, Dec 30, 2021 at 08:01:43AM +0200, Andrew Melnychenko wrote:
Added "rss" and "rss_hash_report" configuration
that should be used with
qemu virtio RSS.
Both options are triswitches. Used as "driver" options and affects only NIC
with model type "virtio".
In other patches - options should turn on virtio-net RSS and hash properties.
Signed-off-by: Andrew Melnychenko <andrew(a)daynix.com>
---
docs/formatdomain.rst | 15 +++++++++++++++
docs/schemas/domaincommon.rng | 10 ++++++++++
src/conf/domain_conf.c | 31 ++++++++++++++++++++++++++++++-
src/conf/domain_conf.h | 2 ++
4 files changed, 57 insertions(+), 1 deletion(-)
diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst
index d4f30bb8af..f7b784ed26 100644
--- a/docs/formatdomain.rst
+++ b/docs/formatdomain.rst
@@ -5305,6 +5305,21 @@ following attributes are available for the ``"virtio"``
NIC driver:
only for ``vhostuser`` type. :since:`Since 3.7.0 (QEMU and KVM only)`
**In general you should leave this option alone, unless you are very certain
you know what you are doing.**
+``rss``
+ The ``rss`` option enables in-qemu/ebpf RSS for virtio NIC. RSS works with
+ virtio and tap backends only. Virtio NIC will be launched with "rss"
+ property. Qemu may load eBPF RSS if it has CAP_SYS_ADMIN permissions.
QEMU won't have CAP_SYS_ADMIN with libvirt unless someone goes out of their
way to make the libvirt host configuration insecure. We would consider such
a config to be unsupported aside from developers experimenting with stuff,
so I don't think it merits documentation.
+ In other cases, "in-qemu" RSS is used.
So this is only realistic scenario that can be supported under
libvirt.
+ **In general you should leave this option alone, unless you are
very certain
+ you know what you are doing.**
+``rss_hash_report``
+ The ``rss_hash_report`` option enables in-qemu RSS hash report for virtio
+ NIC. Virtio NIC will be launched with "hash" property. Ebpf RSS
doesn't
+ support hash report yet. Usually enabled alongside with ``rss``.
+ Without ``rss`` option, the hash report doesn't affect steering
+ itself but provides vnet header with a calculated hash.
+ **In general you should leave this option alone, unless you are very certain
+ you know what you are doing.**
virtio options
For virtio interfaces, `Virtio-specific options <#elementsVirtio>`__ can also
be set. ( :since:`Since 3.5.0` )
Regards,
Daniel
--
|:
https://berrange.com -o-
https://www.flickr.com/photos/dberrange :|
|:
https://libvirt.org -o-
https://fstop138.berrange.com :|
|:
https://entangle-photo.org -o-
https://www.instagram.com/dberrange :|