
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@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 :|