neighbour: Don't let neigh_forced_gc() disable preemption for long
authorJudy Hsiao <judyhsiao@chromium.org>
Wed, 6 Dec 2023 03:38:33 +0000 (03:38 +0000)
committerDavid S. Miller <davem@davemloft.net>
Fri, 8 Dec 2023 10:37:43 +0000 (10:37 +0000)
commite5dc5afff62f3e97e86c3643ec9fcad23de4f2d3
treee4c14162082802b8f862a108210a038b3aa69b99
parent179a8b515e4b8971ae4ad2db36a44f0691fc6756
neighbour: Don't let neigh_forced_gc() disable preemption for long

We are seeing cases where neigh_cleanup_and_release() is called by
neigh_forced_gc() many times in a row with preemption turned off.
When running on a low powered CPU at a low CPU frequency, this has
been measured to keep preemption off for ~10 ms. That's not great on a
system with HZ=1000 which expects tasks to be able to schedule in
with ~1ms latency.

Suggested-by: Douglas Anderson <dianders@chromium.org>
Signed-off-by: Judy Hsiao <judyhsiao@chromium.org>
Reviewed-by: David Ahern <dsahern@kernel.org>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Reviewed-by: Douglas Anderson <dianders@chromium.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/neighbour.c