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))
- From: Robert Watson <rwatson@xxxxxxxxxxx>
- Date: Fri, 27 Jul 2007 13:40:28 +0100 (BST)
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@xxxxxxxxxxx>
To: src-committers@xxxxxxxxxxx, cvs-src@xxxxxxxxxxx, cvs-all@xxxxxxxxxxx
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
_______________________________________________
freebsd-current@xxxxxxxxxxx mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscribe@xxxxxxxxxxx"
- Prev by Date: Re: ichwd for ICH8
- Next by Date: Thanks for all the work on the MPSAFE network stack project
- Previous by thread: possible showstopper: kbdmux hangs -current
- Next by thread: Thanks for all the work on the MPSAFE network stack project
- Index(es):