OSDN Git Service

net/sysctl: avoid two synchronize_rcu() calls
authorEric Dumazet <edumazet@google.com>
Fri, 25 Feb 2022 16:18:55 +0000 (08:18 -0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 28 Feb 2022 11:40:47 +0000 (11:40 +0000)
commitb3483bc7a1f2673b35331e60668104ba2be46510
tree2d43f17047844c6ce22ece7d96ff6e085061dc81
parent6a4696c4284f758e8418e5507c3c757ecdf262a4
net/sysctl: avoid two synchronize_rcu() calls

Both rps_sock_flow_sysctl() and flow_limit_cpu_sysctl()
are using synchronize_rcu() right before freeing memory
either by vfree() or kfree()

They can switch to kvfree_rcu(ptr) and kfree_rcu(ptr) to benefit
from asynchronous mode, instead of blocking the current thread.

Note that kvfree_rcu(ptr) and kfree_rcu(ptr) eventually can
have to use synchronize_rcu() in some memory pressure cases.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/sysctl_net_core.c