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_at_ 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_at_ 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_at_ 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.hReceived on Fri Jul 27 2007 - 10:43:13 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:15 UTC