Jiri says:

During region rehash, a new region is created with a more optimized set
of masks (ERPs). When transitioning to the new region, all the rules
from the old region are copied one-by-one to the new region. This
transition can be time consuming and currently done under RTNL lock.

In order to remove RTNL lock dependency during region rehash, introduce
multiple smaller locks guarding dedicated structures or parts of them.
That is the vast majority of this patchset. Only patch #1 is simple
cleanup and patches 12-15 are improving or introducing new selftests.

Jiri Pirko (15):
  mlxsw: spectrum_acl: Remove unused ops field from group structure
  mlxsw: spectrum_acl: Split TCAM group structure into two
  mlxsw: spectrum_acl: Introduce a mutex to guard region list updates
  mlxsw: spectrum_acl: Refactor vregion association code
  mlxsw: spectrum_acl: Introduce vregion mutex
  mlxsw: spectrum_acl: Introduce mutex to guard Bloom Filter updates
  mlxsw: spectrum_acl: Introduce a mutex to guard objagg instance
    manipulation
  mlxsw: spectrum_acl: Enable vregion rehash per-profile
  mlxsw: spectrum_acl: Don't take rtnl lock during
    vregion_rehash_intrvl_set()
  mlxsw: spectrum_acl: Remove RTNL lock assertions from ERP code
  mlxsw: spectrum_acl: Don't take mutex in
    mlxsw_sp_acl_tcam_vregion_rehash_work()
  selftests: mlxsw: spectrum-2: Add IPv6 variant of simple delta rehash
    test
  mlxsw: spectrum_acl: Add vregion migration end tracepoint
  selftests: mlxsw: spectrum-2: Check migrate end trace
  selftests: mlxsw: spectrum-2: Add massive delta rehash test

 .../mlxsw/spectrum_acl_bloom_filter.c         |  34 +-
 .../mellanox/mlxsw/spectrum_acl_erp.c         |  31 +-
 .../mellanox/mlxsw/spectrum_acl_tcam.c        | 446 +++++++++++-------
 .../mellanox/mlxsw/spectrum_acl_tcam.h        |   3 +
 include/trace/events/mlxsw.h                  |  20 +
 .../drivers/net/mlxsw/spectrum-2/tc_flower.sh | 245 ++++++++++
 6 files changed, 592 insertions(+), 187 deletions(-)

-- 
2.20.1

Reply via email to