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/ 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 | 17 +++++++++-- 8 files changed, 166 insertions(+), 75 deletions(-) -- 2.8.4 _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev