[ovs-dev] [patch v3 0/4] conntrack: Optimize and refactor.
Darrell Ball
dlu998 at gmail.com
Mon Dec 3 05:17:15 UTC 2018
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
More information about the dev
mailing list