[ovs-dev] [PATCH v2 0/3] DPDK performance improvement: exact match cache
Daniele Di Proietto
ddiproietto at vmware.com
Fri Aug 15 19:43:34 UTC 2014
This series introduces in dpif-netdev an exact match cache for frequently
used flows. It uses the RSS hash (currently implemented only for netdev-dpdk)
to search the miniflow in an hash table.
While there might be still some tuning left to do, these patch provides
significant performance improvements for the following simple testcase:
CPU: Intel(R) Xeon(R) CPU E5-2650 0 @ 2.00GHz
NIC: Intel Corporation Ethernet Controller 10-Gigabit X540-AT2 (rev 01)
dual port (dpdk0, dpdk1)
Bridge "br0"
Port "dpdk1"
Interface "dpdk1"
type: dpdk
Port "br0"
Interface "br0"
type: internal
Port "dpdk0"
Interface "dpdk0"
type: dpdk
Source connected to dpdk0, sink to dpdk1
1 flow 64 bytes UDP packets going from source to sink
zero drop throughput:
master: ~ 5.6 Mpps
new patch: ~13.0 Mpps
v2:
- Implemented Pravin suggestions:
+ dp_netdev_rss()
+ reverse order of batch lookup in dp_netdev_queue_batches()
- Split dp_netdev_input() in two functions to save memory in exact match
cache processing
- Use variable length arrays to reduce cache footprint
- Rebased
Daniele Di Proietto (3):
ofpbuf: Add ofpbuf_rss()
dpif-netdev: Add dp_netdev_packet_rss()
dpif-netdev: Exact match cache
lib/dpif-netdev.c | 451 +++++++++++++++++++++++++++++++++++++++++++++---------
lib/netdev-dpdk.c | 3 +-
lib/ofpbuf.h | 14 ++
3 files changed, 395 insertions(+), 73 deletions(-)
--
2.0.1
More information about the dev
mailing list