This series reduces kernel datapath lock contention. I have included the NUMA stats patches, as the rest do not apply cleanly without them. I have added netperf TCP_CRR results (connections/second) as the first column in the list below. These are in a specific 2-socket server, YMMV.
I have included the current master as a baseline. The numbers are for the best run after a warmup, representing a case when revalidation is not necessary, but stats are still pushed continuously. Finally, I have manually set the max_idle to 750ms, so that it would not skew the results (too high max_idle will cause handlers to not be able to push all flows, which leads to more upcalls, and more TCP latency -> lower TCP_CRR score.) Jarno Rajahalme (13): 19k Master 17k datapath: Remove 5-tuple optimization. 45.1k datapath: Per NUMA node flow stats. datapath: Fix race. datapath: Avoid assigning a NULL pointer to flow actions. datapath: Use TCP flags in the flow key for stats. datapath: Clarify locking. 45.2k datapath: Minimize dp and vport critical sections. 52.3k datapath: Minimize ovs_flow_cmd_del critical section. 52.3k datapath: Minimize ovs_flow_cmd_new_or_set critical section. datapath: Store alloced size with sw_flow_acts. 52.7k datapath: Remove memory allocations from ovs_flow_cmd_execute. 56.2k datapath: Build netlink reply only if needed. 56.8k datapath: Do not return actions from flow delete. datapath/datapath.c | 528 +++++++++++++++++++++++++---------------------- datapath/flow.c | 181 ++++++++-------- datapath/flow.h | 19 +- datapath/flow_netlink.c | 78 ++----- datapath/flow_netlink.h | 3 +- datapath/flow_table.c | 59 +++--- datapath/flow_table.h | 6 +- 7 files changed, 445 insertions(+), 429 deletions(-) -- 1.7.10.4 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev