Patch 1 is not an optimization per se, but aimed at eliminating the exporting of internal conntrack infra.
Patch 2 Add RCU support. This is mainly done for performance reasons, but also simplifies the code. Patch 3 Moves the conntrack entry locking to the L4 protocol specific layers. This is done for performance reasons and some memory savings. Patch 4 is mainly for memory savings for the most common cases, but also increases performance for large number of flows (> 100000). Patch 5 is a performance optimization for recirculations. This series starts at v1 although some parts were sent out earlier as a single patch; that is because the earlier series stated that the patch would later be split out and added to, hence that is an implied RFC. Also, this series brings in a couple new improvements not in the original patch. These patches presently include an updated version of the changes for this series https://patchwork.ozlabs.org/project/openvswitch/list/?series=78059 but those parts (approx 20 lines) will be later dropped from this series and handled with the above mentioned series. v3: Dropped Patch 3 from the series since it was broken/incomplete and not worth the fix, since there are some disadvantages in terms of maintainability, including treating UDP/ICMP different than TCP, while the performance benefit was borderline. Fixed bug in 'nat_res_exhaustion' exception code. Cleaned up a few APIs - 'conn_clean*'/'delete_conn*' and removed an unneeded one, 'conn_available()'. Added more comments. Removed non-essential 'nat' field from struct conn_lookup_ctx. Fixed some splicing issues b/w Patch 1 and Patch 2, where some aspects of Patch 2 were now moved to Patch 1. v2: Put back somehow deleted '&' in Patch 1 in call to check_orig_tuple() for bucket parameter (which is removed in Patch 2). Darrell Ball (4): conntrack: Stop exporting internal datastructures. conntrack: Add rcu support. conntrack: Memory savings. conntrack: Optimize recirculations. lib/conntrack-icmp.c | 23 +- lib/conntrack-other.c | 13 +- lib/conntrack-private.h | 112 ++-- lib/conntrack-tcp.c | 21 +- lib/conntrack.c | 1338 +++++++++++++++++++++-------------------------- lib/conntrack.h | 212 +------- lib/dpif-netdev.c | 51 +- lib/packets.h | 4 + tests/test-conntrack.c | 26 +- 9 files changed, 752 insertions(+), 1048 deletions(-) -- 1.9.1 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
