[ovs-dev] [PATCH v1 0/6] Memory access optimization for flow scalability of userspace datapath.

Yanqin Wei 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. 
Flows           delta
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
    hash value.
  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 mailing list