[ovs-dev] [PATCH v2 0/2] Implement terse dump for netdev-offload

Roi Dayan roid at mellanox.com
Thu Jun 4 10:46:59 UTC 2020


In order to improve revalidator performance, extend netdev-offload with terse
dump support. In terse dump mode modify code that parses netlink to flower and
flower to match to only provide the essential data for conversion instead of
parsing all filter and actions data.

Implement support for new TC TCA_DUMP_FLAGS_TERSE flag. With the flag set TC
kernel implementation skips output of all other data besides stats, cookie and
flags which allows to pack much more filters in single netlink packet and
reduces amount of syscalls required to execute filter dump.

The impact of the change is measured by benchmarking revalidator poll interval
time with 100k of simple L2 flows with two revalidator threads on setup with 2x
Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz, 32GB memory. For such configuration
poll interval is reduced from ~1020ms to ~220ms. 

Pointer to the kernel patches for the new TC flag:
https://patchwork.ozlabs.org/project/netdev/cover/20200515114014.3135-1-vladbu%40mellanox.com/

Pointer to travis ci
https://travis-ci.org/github/roidayan/ovs/builds/694595308


Vlad Buslov (2):
  netdev-offload: Implement terse dump support
  tc: Support new terse dump kernel API

 lib/dpif-netlink.c            | 70 +++++++++++++++++++++---------------------
 lib/netdev-offload-provider.h |  3 +-
 lib/netdev-offload-tc.c       | 71 ++++++++++++++++++++++++++++++++-----------
 lib/netdev-offload.c          | 10 +++---
 lib/netdev-offload.h          |  6 ++--
 lib/tc.c                      | 59 +++++++++++++++++++++++++++--------
 lib/tc.h                      |  5 +--
 ofproto/ofproto-dpif-upcall.c | 24 +++++++++++++--
 8 files changed, 173 insertions(+), 75 deletions(-)

-- 
2.8.4



More information about the dev mailing list