Commit 99c6f60e72f112b57ddb07abb2e5f771ee211f43

Authored by Jamal Hadi Salim
Committed by David S. Miller
1 parent bc6cffd177

ipsec: pfkey should ignore events when no listeners

When pfkey has no km listeners, it still does a lot of work
before finding out there aint nobody out there.
If a tree falls in a forest and no one is around to hear it, does it make
a sound? In this case it makes a lot of noise:
With this short-circuit adding 10s of thousands of SAs using
netlink improves performance by ~10%.

Signed-off-by: Jamal Hadi Salim <hadi@cyberus.ca>
Signed-off-by: David S. Miller <davem@davemloft.net>

Showing 1 changed file with 3 additions and 0 deletions Side-by-side Diff

... ... @@ -3030,6 +3030,9 @@
3030 3030  
3031 3031 static int pfkey_send_notify(struct xfrm_state *x, struct km_event *c)
3032 3032 {
  3033 + if (atomic_read(&pfkey_socks_nr) == 0)
  3034 + return 0;
  3035 +
3033 3036 switch (c->event) {
3034 3037 case XFRM_MSG_EXPIRE:
3035 3038 return key_notify_sa_expire(x, c);