[ovs-dev] [PATCH 0/1] dpif-netdev: Conditional EMC insert
Ciara Loftus
ciara.loftus at intel.com
Thu Jan 12 16:49:58 UTC 2017
This patch is part of the OVS-DPDK performance optimizations presented
on the OVS fall conference
(http://openvswitch.org/support/ovscon2016/8/1400-gray.pdf)
The Exact Match Cache does not perform well in use cases with a high
numbers of parallel packet flows. When the flow count exceeds 8k, which
is the size of the EMC, 'thrashing' occurs. Subsequent packets incur
EMC misses and lead to the insertion of new entries, which are likely
already overwritten by the time the next packet of a flow arrives.
The extra cost of useless EMC insertions and failed EMC lookups degrades
the performance of the netdev-dpdk datapath up to 30% compared to the
pure performance of the dpcls classifier with EMC disabled. Profiling
has shown that the bulk of the degradation is caused by the EMC
insertions.
To avoid this degradation we apply 'probabilistic' EMC insertions, whereby
an EMC miss only results in an EMC insertion with a random probability
of P=1/N (N integer). With this model, the insertion overhead of the EMC
can be reduced by a factor N, while the EMC speedup is maintained for a
small to medium number of flows. Probabilistic insertion can be
implemented with minimal run-time cost and naturally favors long-lived
flows.
Different values for P from 1/100 to 1/4000 were validated and benchmarked
when creating this patch. Not much variance between different probabilities
was observed.
We chose P=1/100 because it gives almost the same improvement as lower
probabilities while reaching the EMC capacity and thus optimal performance
quicker than the lower probabilities.
For P=1/100, the EMC reached full capacity after 843ms when subjecting the
datapath with 100000 long-lived flows at 14.8 Mpps. This is much quicker
compared to P=1/500 and P=1/1000, which took 3792ms and 7370ms
respectively.
lib/dpif-netdev.c | 20 ++++++++++++++++++--
1 file changed, 18 insertions(+), 2 deletions(-)
--
2.4.3
More information about the dev
mailing list