On 1/9/22 22:07, Andrew Melnychenko wrote: > This series of patches add RSS property support for virtio-net-pci. > > Virtio RSS effectively works with TAP devices, it requires additional > vectors for VirtioNet, queues for TAP device, and vCPU cores. > Example of device configuration: > ``` > <interface type="network"> > <mac address="52:54:00:c4:90:25"/> > <source network="default"/> > <model type="virtio"/> > <driver name="qemu" queues="9" rss="on" rss_hash_report="off"/> > <address type="pci" domain="0x0000" bus="0x01" slot="0x00" function="0x0"/> > </interface> > ``` > > Capability "rss" enables RSS, "rss_hash_report" - enables hashes in vheader. > For now, "rss" property will trigger "in-qemu" RSS in most cases. > Current Qemu(6.2) supports eBPF RSS that may require additional capabilities. > In future, the helper will be provided. And this code is the base for VirtIO RSS. > > Changes since v1: > * refactored patches > * changed docs and tests > > Changes since RFC: > * rebased and refactored > * added tests > * postponed the helper > > Andrew Melnychenko (4): > domain_conf: Added configs for RSS and Hash report. > qemu_capabilities: Added capabilites for qemu's "rss" and "hash". > qemu_command: Added "rss" and "hash" properties. > test: Added xml2argv and xml2xml tests. > > docs/formatdomain.rst | 18 ++++++++ > docs/schemas/domaincommon.rng | 10 +++++ > src/conf/domain_conf.c | 31 ++++++++++++- > src/conf/domain_conf.h | 2 + > src/qemu/qemu_capabilities.c | 2 + > src/qemu/qemu_capabilities.h | 1 + > src/qemu/qemu_command.c | 2 + > src/qemu/qemu_validate.c | 14 ++++++ > .../caps_5.1.0.x86_64.xml | 1 + > .../caps_5.2.0.aarch64.xml | 1 + > .../qemucapabilitiesdata/caps_5.2.0.ppc64.xml | 1 + > .../caps_5.2.0.riscv64.xml | 1 + > .../qemucapabilitiesdata/caps_5.2.0.s390x.xml | 1 + > .../caps_5.2.0.x86_64.xml | 1 + > .../caps_6.0.0.aarch64.xml | 1 + > .../qemucapabilitiesdata/caps_6.0.0.s390x.xml | 1 + > .../caps_6.0.0.x86_64.xml | 1 + > .../caps_6.1.0.x86_64.xml | 1 + > .../caps_6.2.0.aarch64.xml | 1 + > .../qemucapabilitiesdata/caps_6.2.0.ppc64.xml | 1 + > .../caps_6.2.0.x86_64.xml | 1 + > .../net-virtio-rss.x86_64-latest.args | 43 +++++++++++++++++++ > tests/qemuxml2argvdata/net-virtio-rss.xml | 39 +++++++++++++++++ > .../virtio-options.x86_64-latest.args | 2 +- > tests/qemuxml2argvdata/virtio-options.xml | 2 +- > tests/qemuxml2argvtest.c | 2 + > 26 files changed, 178 insertions(+), 3 deletions(-) > create mode 100644 tests/qemuxml2argvdata/net-virtio-rss.x86_64-latest.args > create mode 100644 tests/qemuxml2argvdata/net-virtio-rss.xml > I've reworked patches a bit, adopted newer XML parsing, merged 3 and 4 together and pushed. Reviewed-by: Michal Privoznik <mprivozn@xxxxxxxxxx> Congratulations on your first libvirt contribution! And sorry for delayed review. Michal