[ovs-dev] [PATCH v1 0/6] Memory access optimization for flow scalability of userspace datapath.
Yanqin.Wei at arm.com
Tue Jun 2 07:09:59 UTC 2020
OVS userspace datapath is a program with heavy memory access. It needs to
load/store a large number of memory, including packet header, metadata,
EMC/SMC/DPCLS tables and so on. It causes a lot of cache line missing and
refilling, which has a great impact on flow scalability. And in some cases,
EMC has a negative impact on the overall performance. It is difficult for
user to dynamically manage the enabling of EMC.
This series of patches improve memory access of userspace datapath as
1. Reduce the number of metadata cache line accessed by non-tunnel traffic.
2. Decrease unnecessary memory load/store for batch/flow.
3. Modify the layout of EMC data struct. Centralize the storage of hash
In the NIC2NIC traffic tests, the overall performance improvement is
observed, especially in multi-flow cases.
1-1K flows 5-10%
10K flows 20%
100K flows 40%
EMC disable 10%
Malvika Gupta (1):
[ovs-dev] dpif-netdev: Modify dfc_processing function to void function
Yanqin Wei (5):
netdev: avoid unnecessary packet batch refilling in netdev feature
dpif-netdev: add tunnel_valid flag to skip ip/ipv6 address comparison
dpif-netdev: improve emc lookup performance by contiguous storage of
dpif-netdev: skip flow hash calculation in case of smc disabled
dpif-netdev: remove unnecessary key length calculation in fast path
lib/dp-packet.h | 12 +++--
lib/dpif-netdev.c | 115 ++++++++++++++++++++++++----------------------
lib/flow.c | 2 +-
lib/netdev.c | 13 ++++--
lib/packets.h | 46 ++++++++++++++++---
5 files changed, 120 insertions(+), 68 deletions(-)
More information about the dev