Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 26 May 2008 10:30:20 +0100 (BST)
From:      Robert Watson <rwatson@FreeBSD.org>
To:        arch@FreeBSD.org, net@FreeBSD.org
Subject:   Remaining non-MPSAFE netisr handlers
Message-ID:  <20080526102345.G26343@fledge.watson.org>

next in thread | raw e-mail | index | archive | help

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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080526102345.G26343>