On Wed, Feb 17, 2021 at 8:34 AM Gaetan Rivet <gr...@u256.net> wrote: > > The lock priority order is for the global 'ct_lock' to be taken first > and then 'conn->lock'. This is an issue, as multiple operations on > connections are thus blocked between threads contending on the > global 'ct_lock'. > > This was previously necessary due to how the expiration lists, timeout > policies and zone limits were managed. They are now using RCU-friendly > structures that allow concurrent readers. The mutual exclusion now only > needs to happen during writes. > > This allows reducing the 'ct_lock' precedence, and to only take it > when writing the relevant structures. This will reduce contention on > 'ct_lock', which impairs scalability when the connection tracker is > used by many threads. > > Signed-off-by: Gaetan Rivet <gr...@u256.net> > Reviewed-by: Eli Britstein <el...@nvidia.com> > ---
Thanks! it's pretty cool to see locks being removed or optimized. The changes make sense to me. But maybe others should also take a second look. William _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev