HEADS UP: debug.mpsafenet removed (cvs commit:
src/sys/dev/ath/ath_rate/amrr
amrr.c src/sys/dev/ath/ath_rate/onoe onoe.c src/sys/dev/ce if_ce.c
src/sys/dev/cp if_cp.c src/sys/dev/ctau if_ct.c src/sys/dev/cx
if_cx.c src/sys/kern subr_bus.c uipc_domain.c src/sys/net if.c
if_ethersubr.c netisr.c ... (fwd))
Robert Watson
rwatson at FreeBSD.org
Fri Jul 27 12:43:13 UTC 2007
This is the first of two e-mails relating to the removal of
Giant-compatibility code from the network protocol stack. Please read both.
Per intermittent e-mails and notifications over the last three years, I have
now removed the NET_NEEDS_GIANT() and debug.mpsafenet machinery from the
7-CURRENT kernel. This is, in principle, largely a no-op, as no
NET_NEEDS_GIANT() components remain in the kernel, and all remaining
components are intended to be MPSAFE, and the vast majority of users have been
running without Giant over the network stack since about FreeBSD 5.3.
However, bumps inevitably happen, so please let me know:
- *If* you are using credential-based rules in your ipfw or pf firewall
configuration, this may trigger WITNESS lock order reversal warnings. We
plan to suppress these warnings before the release, so the warnings alone
should not present a problem. However, if you experience deadlocks as a
result, drop e-mail to current@ as soon as possible so that they can be
diagnosed and fixed.
- *If* you have been running with debug.mpsafenet because it suppressed some
other warning you have, to date, neglected to e-mail current@ about, or not
reminded us about frequently, *and* it now recurs as a result of
debug.mpsafenet going away, please send e-mail to current@ as soon as
possible.
A series of follow-up commits to remove various straggling references and
compatibility pieces will now occur, including converting all
NET_CALLOUT_MPSAFE references to CALLOUT_MPSAFE, and removing calls to
NET_*_GIANT() at various points in the protocol and driver code.
Non-MPSAFE device drivers flagged with IFF_NEEDSGIANT should remain
unaffected, as the code to acquire Giant before entering from the network
stack will remain in place, and those drivers will not be passing the MPSAFE
flag into the interrupt registration code.
Thanks,
Robert N M Watson
Computer Laboratory
University of Cambridge
---------- Forwarded message ----------
Date: Fri, 27 Jul 2007 11:59:57 +0000 (UTC)
From: Robert Watson <rwatson at FreeBSD.org>
To: src-committers at FreeBSD.org, cvs-src at FreeBSD.org, cvs-all at FreeBSD.org
Subject: cvs commit: src/sys/dev/ath/ath_rate/amrr amrr.c
src/sys/dev/ath/ath_rate/onoe onoe.c src/sys/dev/ce if_ce.c
src/sys/dev/cp if_cp.c src/sys/dev/ctau if_ct.c src/sys/dev/cx
if_cx.c src/sys/kern subr_bus.c uipc_domain.c src/sys/net if.c
if_ethersubr.c netisr.c ...
rwatson 2007-07-27 11:59:57 UTC
FreeBSD src repository
Modified files:
sys/dev/ath/ath_rate/amrr amrr.c
sys/dev/ath/ath_rate/onoe onoe.c
sys/dev/ce if_ce.c
sys/dev/cp if_cp.c
sys/dev/ctau if_ct.c
sys/dev/cx if_cx.c
sys/kern subr_bus.c uipc_domain.c
sys/net if.c if_ethersubr.c netisr.c
sys/nfsserver nfs_srvsubs.c nfs_syscalls.c
sys/sys kernel.h mutex.h
Log:
First in a series of changes to remove the now-unused Giant compatibility
framework for non-MPSAFE network protocols:
- Remove debug_mpsafenet variable, sysctl, and tunable.
- Remove NET_NEEDS_GIANT() and associate SYSINITSs used by it to force
debug.mpsafenet=0 if non-MPSAFE protocols are compiled into the kernel.
- Remove logic to automatically flag interrupt handlers as non-MPSAFE if
debug.mpsafenet is set for an INTR_TYPE_NET handler.
- Remove logic to automatically flag netisr handlers as non-MPSAFE if
debug.mpsafenet is set.
- Remove references in a few subsystems, including NFS and Cronyx drivers,
which keyed off debug_mpsafenet to determine various aspects of their own
locking behavior.
- Convert NET_LOCK_GIANT(), NET_UNLOCK_GIANT(), and NET_ASSERT_GIANT into
no-op's, as their entire behavior was determined by the value in
debug_mpsafenet.
- Alias NET_CALLOUT_MPSAFE to CALLOUT_MPSAFE.
Many remaining references to NET_.*_GIANT() and NET_CALLOUT_MPSAFE are still
present in subsystems, and will be removed in followup commits.
Reviewed by: bz, jhb
Approved by: re (kensmith)
Revision Changes Path
1.14 +1 -1 src/sys/dev/ath/ath_rate/amrr/amrr.c
1.15 +1 -1 src/sys/dev/ath/ath_rate/onoe/onoe.c
1.9 +0 -7 src/sys/dev/ce/if_ce.c
1.34 +0 -5 src/sys/dev/cp/if_cp.c
1.34 +0 -5 src/sys/dev/ctau/if_ct.c
1.57 +0 -5 src/sys/dev/cx/if_cx.c
1.201 +0 -3 src/sys/kern/subr_bus.c
1.50 +2 -7 src/sys/kern/uipc_domain.c
1.273 +1 -8 src/sys/net/if.c
1.235 +1 -1 src/sys/net/if_ethersubr.c
1.19 +0 -92 src/sys/net/netisr.c
1.148 +1 -4 src/sys/nfsserver/nfs_srvsubs.c
1.115 +2 -8 src/sys/nfsserver/nfs_syscalls.c
1.136 +0 -5 src/sys/sys/kernel.h
1.99 +5 -22 src/sys/sys/mutex.h
More information about the freebsd-current
mailing list