-
Bug
-
Resolution: Unresolved
-
Undefined
-
rhel-9.5
-
libvirt-10.10.0-1.el9
-
No
-
Low
-
rhel-sst-virtualization
-
ssg_virtualization
-
3
-
Dev ack
-
False
-
-
None
-
None
-
-
10.10.0
-
None
What were you trying to do that didn't work?
"average" and "peak" are differently expressed for inbound for interface connected to OVS bridge;
For OVS bridge, the "average" parameter is interpreted as min-rate, while "peak" is interpreted as max-rate ("average" indicates the min-rate, "peak" indicates the max-rate).
While for linux bridge, the throughput is limited by the "average" parameter ("average" indicates the max-rate), "peak" is not used here;
Please provide the package NVR for which bug is seen:
libvirt-10.5.0-5.el9.x86_64
How reproducible:
100%
Steps to reproduce
1) create a ovs bridge named ovsbr0, then start vm with interface setting as below:
# virsh dumpxml rhel --xpath //interface <interface type="bridge"> <mac address="52:54:00:ed:88:bf"/> <source bridge="ovsbr0"/> <virtualport type="openvswitch"> <parameters interfaceid="f2eac6c7-8fb0-4eec-9a95-e4ee413a3541"/> </virtualport> <bandwidth> <inbound average="512" peak="1024" burst="32"/> </bandwidth> ...... </interface>
2) check the inbound setting by tc:
# tc class show dev vnet5 class htb 1:1 parent 1:fffe prio 0 rate 4096Kbit ceil 8192Kbit burst 32Kb cburst 32Kb class htb 1:fffe root **rate 8192Kbit** ceil 8192Kbit burst 1499b cburst 1499b
3) check the Qos setting by ovs command:
# ovs-vsctl list qos _uuid : 9cc72160-62ab-4842-bae8-3b74ab53e2c2 external_ids : {ifname=vnet5, vm-id="430e0466-de3f-4a95-ab8d-0fe85dffb586"} other_config : {burst="262144", max-rate="8192000", min-rate="4096000"} queues : {0=c0ffaeab-fe1c-4bbc-93d1-186b342a8249} type : linux-htb (max-rate="8192000" bit, equals to 1024KB, as "peak" setting; min-rate="4096000"bit, equals to 512KB, as "average" setting)
4) On guest, run netserver, and then on host, run netperf command as below:
# netperf -H 10.73.179.229 MIGRATED TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 10.73.179.229 () port 0 AF_INET : histogram : interval : dirty data : demo Recv Send Send Socket Socket Message Elapsed Size Size Size Time Throughput bytes bytes bytes secs. 10^6bits/sec 131072 16384 16384 10.61 7.84
While for linux bridge, it's different:
# virsh dumpxml rhel --xpath //interface <interface type="bridge"> <mac address="52:54:00:ed:88:bf"/> <source bridge="virbr0"/> <bandwidth> <inbound average="512" peak="1024" burst="32"/> </bandwidth> ...... </interface>
1). check the inbound:
# tc class show dev vnet4 class htb 1:1 root leaf 2: prio 0 **rate 4096Kbit** ceil 8192Kbit burst 32Kb cburst 1598b
2) test the inbound:
# netperf -H 192.168.122.213 ...... Recv Send Send Socket Socket Message Elapsed Size Size Size Time Throughput bytes bytes bytes secs. 10^6bits/sec 131072 16384 16384 10.47 3.94
3) Check the definition on libvirt.org:
average
Specifies the desired average bit rate for the interface being shaped (in kilobytes/second).
peak
Optional attribute which specifies the maximum rate at which the bridge can send data (in kilobytes/second).
Expected results
For OVS bridge, the "average" parameter is interpreted as max-rate, consistent with the linux bridge.
Actual results
For OVS bridge, the "average" parameter is interpreted as min-rate, while "peak" is interpreted as max-rate ("average" indicates the min-rate, "peak" indicates the max-rate).
- is blocked by
-
RHEL-50574 Rebase libvirt in RHEL-9.6.0
- Integration
- links to
-
RHBA-2024:140248 libvirt bug fix and enhancement update