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

Daniele Di Proietto diproiettod at ovn.org
Fri Oct 7 22:45:08 UTC 2016


Thanks for posting this.

I quickly tried this with some simple flow tables and it seems to be
beneficial.

I agree with Jarno's comments and I posted a couple more to the single
patches.

I see two signoff, but a single author, should you add a Co-authored-by,
perhaps?

Other than these I am fine with the series. Could you maybe send another
version with the suggested changes, please?

Thanks,

Daniele

2016-10-07 9:17 GMT-07:00 Bhanuprakash Bodireddy <
bhanuprakash.bodireddy at intel.com>:

> 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
>
> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev
>



More information about the dev mailing list