From 2e4792c9c8720812abfc9876736e16bf34ed7d45 Mon Sep 17 00:00:00 2001 From: Robert Watson Date: Sat, 24 Jul 2004 16:13:27 +0000 Subject: [PATCH] Update network locking status. --- en/smp/index.sgml | 234 ++++++++++++++++++++++++++++++++++++---------- 1 file changed, 183 insertions(+), 51 deletions(-) diff --git a/en/smp/index.sgml b/en/smp/index.sgml index f30da65c13..1e0a77dfee 100644 --- a/en/smp/index.sgml +++ b/en/smp/index.sgml @@ -1,6 +1,6 @@ - + %includes; @@ -1173,6 +1173,14 @@ &status.done; + + Add subsystem locking to NFSv2, NFSv3 server, permitting upcalls + and other network-related elements to run Giant-free. + &a.rwatson; + 24 July 2004 + &status.done; + + @@ -1191,8 +1199,8 @@ Lock down the tty subsystem. - Dick Garner, Jeremy Scofield, &a.tmm; - 2 April 2002 + Dick Garner, Jeremy Scofield, &a.tmm;, &a.phk; + 24 July 2004 &status.wip; @@ -1238,8 +1246,8 @@ Remove the MP safe syscall flag from the syscall table and add explicit mtx_lock/unlock's of Giant to all syscalls. - &a.dillon;, &a.mux; - 28 February 2002 + &a.dillon;, &a.mux;, &a.rwatson; + 24 July 2004 &status.wip; @@ -1348,13 +1356,6 @@ &status.wip; - - Add locking to NFS. - &a.rwatson; - 23 April 2004 - &status.wip; - - @@ -1604,8 +1605,8 @@ Lock up raw IP. - &a.sam; - 4 October 2003 + &a.sam;, &a.rwatson; + 24 July 2004 &status.done; @@ -1752,6 +1753,167 @@ &status.done; + + Permit IP forwarding path to run Giant-free. + &a.sam; + 1 December 2003 + &status.done; + + + + Lock &unix; domain protocols, fifofs. + &a.sam, &a.rwatson; + 24 July 2004 + &status.done; + + + + Giant lock over NFS server to protect against so_upcall() w/o Giant + &a.rwatson; + 24 July 2004 + &status.done; + + + + Lock interface cloning meta-data. + &a.brooks; + 24 July 2004 + &status.done; + + + + Apply combination of socket and socket buffer locks, label caching + to MAC labels on sockets so that they can be used safely without + Giant. + &a.rwatson; + 24 July 2004 + &status.done; + + + + Make routing socket message dispatch use a netisr to avoid + re-entering the socket code from the routing code, resolving lock + order issues. + &a.rwatson; + 24 July 2004 + &status.done; + + + + Introduce accept locking to protect accept incomplete and + complete queues on listen sockets. + &a.rwatson; + 24 July 2004 + &status.done; + + + + Break out socket buffer wakeup, socket buffer append, socket + state change, socket buffer reserve, flush, etc, calls into + _locked() and unlocked versions, and avoid conditional locking. + + &a.rwatson; + 24 July 2004 + &status.done; + + + + Lock down AARP, AppleTalk Address Resoluton Protocol. + &a.rwatson; + 24 July 2004 + &status.done; + + + + Fix pull/push cache data synchronization issues in sosend(), + soreceive(), allowing them to run Giant-free. + &a.rwatson; + 24 July 2004 + &status.done; + + + + Protect socket global counters/limits and generation number + with a mutex. + &a.rwatson; + 24 July 2004 + &status.done; + + + + Lock down unit allocation meta-data in interface related + netgraph modules. + &a.rwatson; + 24 July 2004 + &status.done; + + + + Lock down socket buffer OOB fields across TCP/IP, IPX. + &a.rwatson; + 24 July 2004 + &status.done; + + + + Add MSG_NBIO so that fifofs can avoid frobbing SO_NBIO in + a manner that risks races. + &a.truckman; + 24 July 2004 + &status.done; + + + + Protect all use of so_count with socket lock. + &a.rwatson; + 24 July 2004 + &status.done; + + + + Move socket buffer related state from so_state to sb_state so + it can be properly locked by the socket buffer mutex. + &a.rwatson; + 24 July 2004 + &status.done; + + + + Introduce a temporary global lock to lock the if_label field + used by the MAC Framework. + &a.rwatson; + 24 July 2004 + &status.done; + + + + Push VFS-specific behavior out of fdrop_locked() and acquire + Giant in the fo_close per-object methods rather than + fdrop_locked(), so that pipes and sockets can run fo_close() + Giant-free. + &a.rwatson; + 24 July 2004 + &status.done; + + + + Push Giant acquisition into fo_stat() file descriptor stat + operation, rather than acquiring it in fstat(), so that fstat() + on sockets and pipes can run Giant-free. + &a.rwatson; + 24 July 2004 + &status.done; + + + + Don't hold socket locks over entry to protocol switch methods, + allowing protocol methods to acquire socket locks after protocol + locks in the lock order. + &a.rwatson; + 24 July 2004 + &status.done; + + @@ -1768,27 +1930,6 @@ &status.wip; - - Permit IP forwarding path to run Giant-free. - &a.sam; - 10 October 2003 - &status.wip; - - - - Lock interface cloning meta-data. - &a.brooks; - 9 March 2004 - &status.wip; - - - - Lock &unix; domain protocols, fifofs. - &a.hsu;, &a.sam, &a.rwatson; - 23 April 2004 - &status.wip; - - Lock socket layer. &a.tanimura;, &a.sam, &a.rwatson; @@ -1796,13 +1937,6 @@ &status.wip; - - Giant lock over NFS server to protect against so_upcall() w/o Giant - &a.rwatson; - 23 April 2004 - &status.wip; - - if_ppp global, per-softc locking &a.rwatson;, Maurycy Pawlowski-Wieronski <maurycy@fouk.org> @@ -1810,15 +1944,6 @@ &status.wip; - - Apply combination of socket and socket buffer locks, label caching - to MAC labels on sockets so that they can be used safely without - Giant. - &a.rwatson; - 23 April 2004 - &status.wip - - Lock struct ifnet. &a.mlaier;, &a.luigi; Maurycy Pawlowski-Wieronski <maurycy@fouk.org> @@ -1869,6 +1994,13 @@ &status.wip; + + Port inpcb mutex assertions from IPv4 to IPv6 + &a.rwatson; + 24 July 2004 + &status.wip; + +