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