[ovs-dev] [PATCH 00/12] Improve performance of OVS-DPDK classifier

Bhanuprakash Bodireddy bhanuprakash.bodireddy at intel.com
Fri Oct 7 16:17:30 UTC 2016


This patch series is aimed at improving the performance of OVS-DPDK
dpcls.

With few thousands flows installed, the EMC becomes inefficient due
to thrashing and the bottleneck moves to the dpcls. In EMC disabled
case, through VTune we found that significant performance degradation
is due to LLC thrashing, memory latency, machine clears and expensive
hash computation.

This first patch-set improves the dpcls performance by 15% (~1 Mpps)
when EMC is disabled and OVS-DPDK built with CFLAGS="-O2 -g".

Bhanuprakash Bodireddy (12):
  dpcls: Use 32 packet batches for lookups.
        Comment: ~120k performance throughput improvement.

  flow: Add comments to mf_get_next_in_map()
        Comment: Add comments to function.

  flow: Skip invoking expensive count_1bits() with zero input.
        Comment: ~630k performance throughput improvement.

  hash: Skip invoking mhash_add__() with zero input.
        Comment: ~150k performance throughput improvement.

  dpif-netdev: Clear flow batches inside packet_batch_execute.
        Comment: ~50k performance throughput improvement with multiple batches test case.

  cmap: Remove prefetching in cmap_find_batch().
        Comment: ~39k performance throughput improvement.

  dpif-netdev: Cache align netdev_flow_keys.
        Comment: ~170k performance throughput improvement in EMC enabled case.

  dpif-netdev: Reorder elements in dp_netdev_port structure.
  dpif: Reorder elements in dpif_upcall structure.
  ovsdb: Reorder elements in ovsdb_table_schema structure.
  netlink-socket: Reorder elements in nl_dump structure.
  timeval: Reorder elements in clock structure.
        Comment: Reorder memeber variables of the structures to reduce pad bytes
                 and there by memory footprint.

 lib/cmap.c           |   4 --
 lib/dpif-netdev.c    | 118 +++++++++++++++++++++------------------------------
 lib/dpif.h           |  17 ++++----
 lib/flow.h           |  29 +++++++++++--
 lib/hash.h           |   2 +-
 lib/netlink-socket.h |   6 +--
 lib/timeval.c        |   4 +-
 ovsdb/table.h        |   4 +-
 8 files changed, 91 insertions(+), 93 deletions(-)

-- 
2.4.11




More information about the dev mailing list