[PATCHv2 0/6] virDomain: fix problems when setting qos on ovs managed

jx8zjs posted 6 patches 2 years, 7 months ago
Test syntax-check failed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/libvirt tags/patchew/20210817043816.1109-1-jx8zjs@126.com
src/libvirt_private.syms         |   2 +
src/util/virnetdevopenvswitch.c  | 142 ++++++++++++++--------
src/util/virnetdevopenvswitch.h  |  14 +++
tests/virnetdevopenvswitchtest.c | 196 ++++++++++++++++++++++++++++++-
4 files changed, 302 insertions(+), 52 deletions(-)
[PATCHv2 0/6] virDomain: fix problems when setting qos on ovs managed
Posted by jx8zjs 2 years, 7 months ago
---

diff to v1:
  - Modify commit message to no longer then 80 characters.
  - Split patch into several commits
  - Add notes on some function and defination
  - Extract common code block to a single function
  
Thanks to Pavel Hrdina for helping to review these patches.

Two problems are found and fixed below:
1. Ingress rules is not clean on previous version of 
virNetDevOpenvswitchInterfaceClearQos.
2. If errors occurs when removing inbound qos on multi interfaces vm, some
rules may not be delete as aspected.

Fix by:
1.Instead of cleaning all qos rules each time new qos is set, tx and rx's qos
are set or cleaned respectively.
2.Replace virReportError with VIR_WARN to let the cleaning process continue 
when error occurs.
3.Add ifname into ovs querying statements, which will reduce failure of 
removing qos on the other interfaces of the same vm.

Test virNetDevOpenvswitchInterfaceSetQos and 
virNetDevOpenvswitchInterfaceClearQos with dryrun method.
Since commands in tests are not actually run, it is difficult to emulate 
some complex senario, such as set and then update qos. So basic tests are
 added in patches.

Jinsheng Zhang (6):
  virnetdevovs: Add vmuuid notes on virNetDevOpenvswitchInterfaceSetQos
  virnetdevovs: Extract conversion parameters between virNetDevBandwidth
    and ovs
  virnetdevovs: Extract common code block to a single function
  virnetdevovs: Introduce virNetDevOpenvswitchInterfaceClearTxQos and
    virNetDevOpenvswitchInterfaceClearRxQos
  virnetdevovs: Fix qos cleaning residual on multi interfaces
  tests: add test on virNetDevOpenvswitchInterfaceSetQos and
    virNetDevOpenvswitchInterfaceClearQos

 src/libvirt_private.syms         |   2 +
 src/util/virnetdevopenvswitch.c  | 142 ++++++++++++++--------
 src/util/virnetdevopenvswitch.h  |  14 +++
 tests/virnetdevopenvswitchtest.c | 196 ++++++++++++++++++++++++++++++-
 4 files changed, 302 insertions(+), 52 deletions(-)

-- 
2.30.2.windows.1

Re: [PATCHv2 0/6] virDomain: fix problems when setting qos on ovs managed
Posted by Michal Prívozník 2 years, 7 months ago
On 8/17/21 6:38 AM, jx8zjs wrote:
> ---
> 
> diff to v1:
>   - Modify commit message to no longer then 80 characters.
>   - Split patch into several commits
>   - Add notes on some function and defination
>   - Extract common code block to a single function
>   
> Thanks to Pavel Hrdina for helping to review these patches.
> 
> Two problems are found and fixed below:
> 1. Ingress rules is not clean on previous version of 
> virNetDevOpenvswitchInterfaceClearQos.
> 2. If errors occurs when removing inbound qos on multi interfaces vm, some
> rules may not be delete as aspected.
> 
> Fix by:
> 1.Instead of cleaning all qos rules each time new qos is set, tx and rx's qos
> are set or cleaned respectively.
> 2.Replace virReportError with VIR_WARN to let the cleaning process continue 
> when error occurs.
> 3.Add ifname into ovs querying statements, which will reduce failure of 
> removing qos on the other interfaces of the same vm.
> 
> Test virNetDevOpenvswitchInterfaceSetQos and 
> virNetDevOpenvswitchInterfaceClearQos with dryrun method.
> Since commands in tests are not actually run, it is difficult to emulate 
> some complex senario, such as set and then update qos. So basic tests are
>  added in patches.
> 
> Jinsheng Zhang (6):
>   virnetdevovs: Add vmuuid notes on virNetDevOpenvswitchInterfaceSetQos
>   virnetdevovs: Extract conversion parameters between virNetDevBandwidth
>     and ovs
>   virnetdevovs: Extract common code block to a single function
>   virnetdevovs: Introduce virNetDevOpenvswitchInterfaceClearTxQos and
>     virNetDevOpenvswitchInterfaceClearRxQos
>   virnetdevovs: Fix qos cleaning residual on multi interfaces
>   tests: add test on virNetDevOpenvswitchInterfaceSetQos and
>     virNetDevOpenvswitchInterfaceClearQos
> 
>  src/libvirt_private.syms         |   2 +
>  src/util/virnetdevopenvswitch.c  | 142 ++++++++++++++--------
>  src/util/virnetdevopenvswitch.h  |  14 +++
>  tests/virnetdevopenvswitchtest.c | 196 ++++++++++++++++++++++++++++++-
>  4 files changed, 302 insertions(+), 52 deletions(-)
> 

I'm fixing all the small issues I've found and pushing.

Reviewed-by: Michal Privoznik <mprivozn@redhat.com>

Michal