os-vif should provide a way to set a default qos qdisc on a ovs port to avoid regressions across kernel versions and configs.
Affects | Status | Importance | Assigned to | Milestone | ||
---|---|---|---|---|---|---|
os-vif | Status tracked in 2023.2 | |||||
2023.1 |
In Progress
|
High
|
Unassigned | |||
2023.2 |
Fix Released
|
High
|
sean mooney | |||
Wallaby |
In Progress
|
High
|
Unassigned | |||
Yoga |
In Progress
|
High
|
Unassigned | |||
Zed |
In Progress
|
High
|
Unassigned |
Bug Description
in the past when hybrid_plug=true was set on a port libvirt would generate the XML using the bridge option with virtual <virtualport type='openvswitch'>
<interface type='bridge'>
<source bridge='ovsbr'/>
<virtualport type='openvswitch'>
<parameters profileid='menial' interfaceid=
</virtualport>
</interface>
if hybrid_plug=false nova woudl generate
the XML without the <virtualport type='openvswitch'> element
<interface type='bridge'>
<source bridge='br1'/>
<target dev='vnet7'/>
<mac address=
</interface>
a undocumented side effect of <virtualport type='openvswitch'> is that libvirt set the qdisc on the created tapp to linux-noop https:/
when we fixed https:/
<interface type='ethernet'>
<target dev='mytap1' managed='no'/>
<model type='virtio'/>
</interface>
https:/
as a result the undocumented side effect of the <virtualport type='openvswitch'> element now no longer takes effect for any ovs ports.
in more recent kernels or if you set a custom default qdisc vai sysctl this can lead to significant throughput reductions for kernel ovs. for small to medium packets this can reduce the throughput to as low as 10% of the previous behaviour and still have a 50% reduction for jumbo frames.
this is is a significant regression and should be corrected.
in the past this has likely accounted for some of the performance delta between hybrid_plug=true and hybrid_plug=false.
ovs provides a way to set the qdic as an option on the port which it will implement on the underlying netdev.
given the previously inconsistent nature we should ensure the same qdics is applied in both the hybrid_plug True or False case but we need to be careful to not set this for ovs ports on windows or vhost-user ports.
With the above context we should make the default qdisc configurable via a new os-vif config option as a pragmatic back portable solution. Eventually, we can work with Neutron to enable a more granular per port qdisc feature if desirable but that is out of scope of this bug.
tags: | added: ovs |
summary: |
- os-vif should provide a way to set a defult qos profiel on port to avoid - regresions across kernel versions and configs. + os-vif should provide a way to set a default qos qdisc on a ovs port to + avoid regressions across kernel versions and configs. |
just cross-reference our downstream tracker fo this since that is also public /issues. redhat. com/browse/ OSPRH-183
https:/