Remaining non-MPSAFE netisr handlers
Robert Watson
rwatson at FreeBSD.org
Mon May 26 09:30:21 UTC 2008
Dear all:
In the continuing campaign to eliminate the Giant lock from the dregs of the
network stack, I thought I'd send out a list of non-MPSAFE netisr handlers:
Location Handler Removed with IFF_NEEDSGIANT
dev/usb/usb_ethersubr.c:120 usbintr Yes
net/if_ppp.c:277 pppintr Yes
netinet6/ip6_input.c ip6_input No
The plan for 8.0 is to remove the NETISR_MPSAFE flag -- all netisr handlers
will be executed without the Giant lock. This doesn't prohibit acquiring
Giant in the handler if required, although that's undesirable for the obvious
reasons (potentially stalling interrupt handling, etc). Obviously, what would
be most desirable is eliminating the remaining requirement for Giant in the
IPv6 input path, primarily consisting of mld6 and nd6.
With this in mind, my current plan is to remove the flag and add explicit
Giant acquisition for any remaining handlers in June when IFF_NEEDSGIANT
device drivers are disabled.
Robert N M Watson
Computer Laboratory
University of Cambridge
More information about the freebsd-arch
mailing list