Run the ND6 expiry timer without kernel lock
authorkn <kn@openbsd.org>
Mon, 7 Nov 2022 10:45:39 +0000 (10:45 +0000)
committerkn <kn@openbsd.org>
Mon, 7 Nov 2022 10:45:39 +0000 (10:45 +0000)
commitacbded78c27278c842250c6dc79f34982107dc4e
tree8e8f43a0e129250bbf5b6f6633a2e1b0ee697ee9
parent07cf23bbb6790446af427f88b376152f4aaa2921
Run the ND6 expiry timer without kernel lock

Added in 2017 to
Reduce contention on the NET_LOCK() by moving the nd6 address expiration
task to the `softnettq`.

This should no longer be needed thanks to sys/net/if.c r1.652 in 2022:
Activate parallel IP forwarding.  Start 4 softnet tasks.  Limit the
usage to the number of CPUs.

Nothing in nd6_expire() or nd6_expire_timer_update() requires protection by
the kernel lock.

The interface list and per-interface address lists remain protected by the
net lock.

Tests by Hrvoje
OK mpi
sys/netinet6/nd6.c