This series is an extension of v2 which only contained patches 2-4. I wanted to put them all in a single series and provide consistent performance values for all of them.
Patch 1 just adds a performance test tool that is used throughout the series. Patches 2+3 optimize the cases of non-found connections. This is a common case in combination with OVN for the reverse SNAT and reverse DNAT stages. The performance test tool is not covering this specific case. They where only tested on a real world setup. Patch 5 optimizes all modifying operations by splitting the locks for insert and deletions per zone. Patches 6-10 optimize connection cleaning. The goal is to have a predictable performance of the conntrack cleaning process independent if there is only a single gigantic zone in use or if there are a lot of small ones. Key improvement: A Testcase with 10 threads calling conntrack_execute with a full tcp handshakes. Each thread creates in total 1 Million connections and processes them. The n_conn limit is at 3 Million, which means that at least 7 Million connections need to be cleaned for the test to finish. The goal of this case was to simulate a tcp portscan. Before this series the testcase took 73 seconds. After the series we are at 3.7 seconds. Felix Huettner (10): test-conntrack: Benchmark for conntrack on tcp. conntrack: Do not always take insert locks. conntrack: Use cmap for expectations. conntrack: Add more coverage values for conntrack. conntrack: Split lock and limits per zone. conntrack: Clean zones partially. conntrack: Batch conn deletions in a single zone. cmap: Support switching between cursor and position. conntrack: Use cmap cursor for iteration. conntrack: Immediately continue cleaning under load. lib/cmap.c | 62 ++++ lib/cmap.h | 10 + lib/conntrack-private.h | 54 +-- lib/conntrack.c | 796 +++++++++++++++++++--------------------- lib/conntrack.h | 5 +- tests/test-cmap.c | 45 ++- tests/test-conntrack.c | 269 +++++++++++++- 7 files changed, 788 insertions(+), 453 deletions(-) base-commit: 7d07a8623d9fc257489fd99fc8d56a63249c389c -- 2.43.0 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
