This series converts state_by{dst,src,spi} to allow lookups without
holding xfrm_state_lock.

Only xfrm_state_find() is converted here for the (more common) case where
we do not query key manager.

Once more flows are created/destroyed (or the flow cache is overloaded and
often cleans out other entries) this function (and the state lock)
start to show up in perf.

Florian Westphal (6):
      xfrm: state: use hlist_for_each_entry_rcu helper
      xfrm: state: use atomic_inc_not_zero to increment refcount
      xfrm: state: delay freeing until rcu grace period has elapsed
      xfrm: state: add sequence count to detect hash resizes
      xfrm: state: use rcu_deref and assign_pointer helpers
      xfrm: state: don't use lock anymore unless acquire operation is needed

 include/net/netns/xfrm.h |    6 +-
 net/xfrm/xfrm_state.c    |  103 +++++++++++++++++++++++++++++++----------------
 2 files changed, 72 insertions(+), 37 deletions(-)

NB: I have a similar patch series for the policy rwlock, I will send
it once/if this series is applied.

Reply via email to