タスク |
担当者 |
@@ -258,14 +267,14 @@
Process accounting. |
- Tor Egge, &a.jhb; |
+ &a.tegge;, &a.jhb; |
5 October 2000 |
&status.done; |
Make ethernet drivers thread-safe. |
- Bill Paul |
+ &a.wpaul; |
15 October 2000 |
&status.done; |
@@ -336,7 +345,7 @@
Make the zone allocator thread-safe. |
- Dag-Erling Smorgrav |
+ &a.des; |
21 January 2001 |
&status.done; |
@@ -562,7 +571,7 @@
Lock taskqueues. |
- Andrew Reiter, &a.jhb; |
+ &a.arr;, &a.jhb; |
25 October 2001 |
&status.done; |
@@ -602,7 +611,7 @@
Use the per-thread critical section nesting level in the mutex
and interrupt thread code to automatically determine when to not
preempt. This makes the MTX_NOSWITCH, SWI_SWITCH, and
- SWI_NOSWITCH flags obslete as the kernel will be able to figure
+ SWI_NOSWITCH flags obsolete as the kernel will be able to figure
out the proper behavior on its own. |
&a.jhb; |
5 January 2002 |
@@ -630,6 +639,271 @@
&status.done; |
+
+ Move to explicit reference counting for soft vnode references.
+ |
+ &a.phk; |
+ 8 March 2002 |
+ &status.done; |
+
+
+
+ Initialize mutex pools early enough that sx locks can be used
+ for VM. |
+ &a.green; |
+ 14 March 2002 |
+ &status.done; |
+
+
+
+ Place a global lock (sellock) around selinfo structures to fix a
+ variety of lock order reversals, and make select() MP-safe. |
+ &a.alfred;, &a.davidc; |
+ 14 March 2002 |
+ &status.done; |
+
+
+
+ Push down Giant on read, write, pread, pwrite system calls,
+ acquiring Giant in the per-subsystem fileop layer for sockets, VFS,
+ etc. |
+ &a.alfred; |
+ 15 March 2002 |
+ &status.done; |
+
+
+
+ Lock down kernel module structures. |
+ &a.arr; |
+ 18 March 2002 |
+ &status.done; |
+
+
+
+ Lock down kernel linker globals. |
+ &a.arr; |
+ 18 March 2002 |
+ &status.done; |
+
+
+
+ Rewrite kernel memory allocator to be a slab allocator that
+ uses per-cpu caches. |
+ &a.jeff; |
+ 21 March 2002 |
+ &status.done; |
+
+
+
+ Replace incorrect use of MD critical section API to disable
+ interrupts with a specific interrupt disable API. |
+ &a.imp;, &a.dfr;, &a.benno;, &a.jhb; |
+ 21 March 2002 |
+ &status.done; |
+
+
+
+ Lock down access to the shared p_args "process arguments"
+ structure through appropriate protection of that structure and
+ references to it. |
+ &a.mini; |
+ 31 March 2002 |
+ &status.done; |
+
+
+
+ Move from flags/tsleep lock to sx locks to protect sysctl
+ tree from updates during sysctl operations. |
+ &a.mini; |
+ 1 April 2002 |
+ &status.done; |
+
+
+
+ Create/port userland tool to manage KTR event dumps. |
+ &a.jake; |
+ 1 April 2002 |
+ &status.done; |
+
+
+
+ Create MTX_SYSINIT and SX_SYSINIT macros that allow for
+ initializing locks that are subsystem independent. |
+ &a.arr; |
+ 2 April 2002 |
+ &status.done; |
+
+
+
+ Lock down the global securelevel variable. |
+ &a.arr; |
+ 2 April 2002 |
+ &status.done; |
+
+
+
+ Make grow_stack() MI. Possibly even a macro or inline. |
+ &a.alc; |
+ 6 April 2002 |
+ &status.done; |
+
+
+
+ Lock use of p_fd, which otherwise can result in corrupted
+ p_fd panics during heavy operation. Start with a global,
+ and move to per-proc locking. |
+ &a.alfred;, &a.tanimura; |
+ 8 April 2002 |
+ &status.done; |
+
+
+
+ Lock struct pargs. |
+ &a.mini; |
+ 9 April 2002 |
+ &status.done; |
+
+
+
+ Make {o,}sigreturn() MPSAFE. |
+ &a.alc; |
+ 11 April 2002 |
+ &status.done; |
+
+
+
+ Rewrite kernel memory allocator so that Giant is not required
+ for malloc() or free(). |
+ &a.jeff; |
+ 2 May 2002 |
+ &status.done; |
+
+
+
+ Replace complex shared/exclusive locking scheme in the VM
+ system with a purely exclusive lockmgr locking scheme, simplifying
+ locking and removing potential livelock/deadlock scenarios. |
+ &a.green;, &a.alc; |
+ 3 May 2002 |
+ &status.done; |
+
+
+
+ Push down Giant into readv/writev system calls in style of
+ read/write/pread/pwrite once malloc no longer requires Giant in
+ the handling of iovec structures for uio. |
+ &a.alc; |
+ 9 May 2002 |
+ &status.done; |
+
+
+
+ Push down Giant in mprotect(), minherit(), and madvise() so
+ that it is no longer acquired and released directly. |
+ &a.alc; |
+ 18 May 2002 |
+ &status.done; |
+
+
+
+ Update suser() and p_can*() APIs to accept threads instead of
+ processes. |
+ &a.jhb; |
+ 18 May 2002 |
+ &status.done; |
+
+
+
+ Broadly transition to td_ucred from p_ucred once KSE dependencies
+ are in place. |
+ &a.jhb; |
+ 18 May 2002 |
+ &status.done; |
+
+
+
+ Add a witness_sleep() check to uma_zalloc() to catch code
+ calling malloc() or uma_zalloc() while holding non-sleepable
+ locks. |
+ &a.jhb; |
+ 20 May 2002 |
+ &status.done; |
+
+
+
+ Optimize UP support by changing spin locks to only perform
+ critical section enter and exits. |
+ &a.jhb; |
+ 21 May 2002 |
+ &status.done; |
+
+
+
+ Make sleep mutexes spin if the current lock holder is
+ executing on another CPU. |
+ &a.jhb; |
+ 21 May 2002 |
+ &status.done; |
+
+
+
+ Add support for the IA32 pause instruction to spin loops in
+ locks. |
+ &a.jhb; |
+ 21 May 2002 |
+ &status.done; |
+
+
+
+ Make KTRACE write into tracefiles asynchronously. |
+ &a.jhb; |
+ 7 June 2002 |
+ &status.done; |
+
+
+
+ Remove Giant from jail(2). |
+ &a.arr; |
+ 25 June 2002 |
+ &status.done; |
+
+
+
+ Remove Giant from modnext(2), modfnext(2),
+ modstat(2),and modfind(2). |
+ &a.arr; |
+ 25 June 2002 |
+ &status.done; |
+
+
+
+ Fix synchronization of TLB flushes and invlpg() on x86 SMP. |
+ &a.peter; |
+ 12 July 2002 |
+ &status.done; |
+
+
+
+ Make cpu_coredump MI. |
+ &a.peter; |
+ 7 September 2002 |
+ &status.done; |
+
+
+
+ Add a subsystem lock to the accounting code. |
+ &a.arr; |
+ 11 September 2002 |
+ &status.done; |
+
+
+
+ Lock down TrustedBSD MAC implementation. |
+ &a.rwatson; |
+ 11 November 2002 |
+ &status.done; |
+
+
@@ -639,13 +913,6 @@
&status.wip; |
-
- Make KTRACE write into tracefiles asynchronously. |
- &a.jhb; |
- 6 September 2001 |
- &status.wip; |
-
-
Make the kernel fully preemptive. |
&a.jhb; |
@@ -653,17 +920,10 @@
&status.wip; |
-
- Convert vm_map locks to sx locks. |
- &a.green; |
- 18 October 2001 |
- &status.wip; |
-
-
Lock down the tty subsystem. |
- Dick Garner, Jeremy Scofield |
- 16 November 2001 |
+ Dick Garner, Jeremy Scofield, &a.tmm; |
+ 2 April 2002 |
&status.wip; |
@@ -674,45 +934,6 @@
&status.wip; |
-
- Make sleep mutexes spin if the current lock holder is
- executing on another CPU. |
- &a.jhb; |
- 16 November 2001 |
- &status.wip; |
-
-
-
- Add support for the IA32 pause instruction to spin loops in
- locks. |
- &a.jhb; |
- 16 November 2001 |
- &status.wip; |
-
-
-
- Optimize UP support by changing spin locks to only perform
- critical section enter and exits. |
- &a.jhb; |
- 20 December 2001 |
- &status.wip; |
-
-
-
- Implement lazy interrupt thread switching (context
- stealing) on i386. |
- &a.bmilekic; |
- 4 January 2002 |
- &status.wip; |
-
-
-
- Fix synchronization of TLB flushes and invlpg() on x86 SMP. |
- &a.peter; |
- 4 January 2002 |
- &status.wip; |
-
-
Lock pipe implementation: sigio/fown-related evil |
&a.alfred; |
@@ -720,29 +941,6 @@
&status.wip; |
-
- Broadly transition to td_ucred from p_ucred once KSE dependencies
- are in place. |
- &a.jhb; |
- 27 February 2002 |
- &status.wip; |
-
-
-
- Update suser() and p_can*() APIs to accept threads instead of
- processes. |
- &a.jhb; |
- 27 February 2002 |
- &status.wip; |
-
-
-
- Lock down kernel linker and module structures |
- &a.arr; |
- 27 February 2002 |
- &status.wip; |
-
-
Make use of process locking and process reference counting
to protect debugging interfaces (and procfs). |
@@ -759,13 +957,6 @@
&status.wip; |
-
- Lock down TrustedBSD MAC implementation. |
- &a.rwatson; |
- 27 February 2002 |
- &status.wip; |
-
-
Lock down newbus infrastructure to support driver
fine-graining. |
@@ -785,11 +976,122 @@
SMPng architecture document. |
- &a.jhb; |
+ &a.jhb;, &a.rwatson; |
28 February 2002 |
&status.wip; |
+
+ Move to shared lock for VOP_GETATTR() to reduce blocking during
+ frequent lightweight VFS operations. Modify namei() to provide
+ a LOOKUP_SHARED flag to indicate when the lock required may be
+ shared instead of exclusive. |
+ &a.jeff; |
+ 11 March 2002 |
+ &status.wip; |
+
+
+
+ Create mutex profiling tool for the kernel so as to measure
+ contention and behavior of kernel mutexes. |
+ &a.eivind;, &a.des; |
+ 31 March 2002 |
+ &status.wip; |
+
+
+
+ Lock eventhandlers. |
+ &a.msmith;, &a.mini; |
+ 8 April 2002 |
+ &status.wip; |
+
+
+
+ Lock sysctl hierarchy and access methods. |
+ &a.mini; |
+ 9 April 2002 |
+ &status.wip; |
+
+
+
+ Document existing vm_map locking and verify it's correctness. |
+ &a.alc; |
+ 18 May 2002 |
+ &status.wip; |
+
+
+
+ Document existing vm_object locking and verify it's
+ correctness. |
+ &a.alc; |
+ 4 May 2002 |
+ &status.wip; |
+
+
+
+ Implement generic turnstiles to use when blocking on non-sleepable
+ locks. |
+ &a.jhb; |
+ 23 May 2002 |
+ &status.wip; |
+
+
+
+ Lock down linker_file_t structures in the kernel linker. |
+ &a.arr; |
+ 19 June 2002 |
+ &status.wip; |
+
+
+
+ Lock down the SysV IPC code. |
+ &a.alfred; |
+ 13 August 2002 |
+ &status.wip; |
+
+
+
+ Review locking strategy and correctness of VFS operations
+ and fix up various failure modes associated with enabling
+ VFS locking assertions. |
+ &a.jeff; |
+ 10 December 2002 |
+ &status.wip; |
+
+
+
+ Document in-vnode locking strategy, clean it up, remove
+ interlock, switch to sx locks. |
+ &a.jeff; |
+ 10 December 2002 |
+ &status.wip; |
+
+
+
+ Implement lazy interrupt thread switching (context
+ stealing) on i386. |
+ &a.bmilekic;, &a.kan; |
+ 10 December 2002 |
+ &status.wip; |
+
+
+
+ Implement lazy interrupt thread switching (context
+ stealing) on sparc64. |
+ &a.jake; |
+ 10 December 2002 |
+ &status.wip; |
+
+
+
+ Switch from using lockmgr in VM to using a mutex or exclusive
+ sxlock. Push down Giant on all VM except for vm_object/VFS and
+ vm_page/pmap components. |
+ &a.alc; |
+ 10 December 2002 |
+ &status.wip; |
+
+
@@ -808,14 +1110,6 @@
&status.stalled; |
-
- Implement trap handler for cmpxchgl on 80386 to support
- generic userland atomic operations. |
- &a.jake; |
- 15 May 2001 |
- &status.stalled; |
-
-
@@ -825,13 +1119,6 @@
&status.new; |
-
- Use per-CPU buffers for ktr to reduce synchronization. |
- |
- 5 September 2000 |
- &status.new; |
-
-
Remove priority argument from tsleep(), msleep(),
cv_*wait*(). |
@@ -863,20 +1150,6 @@
&status.new; |
-
- Make cpu_core MI. |
- |
- 13 June 2001 |
- &status.new; |
-
-
-
- Lock struct pargs. |
- |
- 20 June 2001 |
- &status.new; |
-
-
Specify priorities for condition variables, semaphores, and
sx locks. |
@@ -907,13 +1180,6 @@
&status.new; |
-
- Make grow_stack() MI. Possibly even a macro or inline. |
- |
- 7 September 2001 |
- &status.new; |
-
-
Fix *hold (e.g. crhold) to return reference to object. |
|
@@ -928,13 +1194,6 @@
&status.new; |
-
- Convert eventhandlers to sx locks. |
- |
- 7 September 2001 |
- &status.new; |
-
-
Add witness checking for lockmgr locks. |
|
@@ -943,19 +1202,12 @@
- Add ICU spin locks on ia64 and sparc64. |
+ Add ICU spin locks on ia64. |
|
4 January 2002 |
&status.new; |
-
- Lock sysctl hierarchy and access methods. |
- |
- 25 February 2002 |
- &status.new; |
-
-
Fast-path push-down of Giant for VOP_READ() and VOP_WRITE(). |
|
@@ -1015,34 +1267,62 @@
- Move to explicit reference counting for soft vnode references.
- |
- &a.jeff; |
- 27 February 2002 |
+ Expand mutex profiling tool to also profile sx locks. |
+ &a.eivind;, &a.des; |
+ 1 April 2002 |
&status.new; |
- Document in-vnode locking strategy, clean it up, remove
- interlock, switch to sx locks. |
- &a.jeff; |
- 27 February 2002 |
+ Implement atomic_fetchadd() for int's and long's with acq and rel
+ versions. |
+ |
+ 23 May 2002 |
+ &status.new; |
+
+
+
+ Implement a simple reference count API using atomic operations and
+ use this to replace locks that just protect a reference count. |
+ |
+ 23 May 2002 |
+ &status.new; |
+
+
+
+ Implement a sleep queue abstraction to be used by both msleep()
+ and condition variables. This new abstraction should use a hash
+ table of sleep queues with a spin lock on each sleep queue chain
+ similar to turnstile chain locks to make sched_lock finger
+ grained. |
+ &a.jhb; |
+ 23 May 2002 |
+ &status.new; |
+
+
+
+ Add a witness_sleep() check to copyin/out() and s/fuword(). |
+ &a.jhb; |
+ 7 June 2002 |
&status.new; |
- Move to shared lock for VOP_GETATTR() to reduce blocking during
- frequent lightweight VFS operations. Review strategy for other
- vnode operations. |
- &a.jeff; |
- 27 February 2002 |
+ Split witness_lock() into witness_checkorder() and
+ witness_lock(). witness_checkorder() would be called before
+ acquiring a lock to increase the changes of detecting and warning
+ about a reversal prior to deadlocking. witness_lock() would
+ simply update witness' internal state to note that a lock has
+ been acquired. |
+ &a.jhb; |
+ 7 June 2002 |
&status.new; |
-
+
+ Lock down struct socket. |
+ &a.tanimura; |
+ 21 April 2002 |
+ &status.wip; |
+
+
+
+ Lock down struct inpcb. |
+ &a.hsu; |
+ 29 April 2002 |
+ &status.wip; |
+
Lock struct ifnet. |
- |
- 19 January 2001 |
+ &a.hsu; |
+ 29 January 2003 |
+ &status.wip; |
+
+
+
+
+
+ Reduce contention upon locking a socket buffer by replacing
+ tsleep() and wakeup() with a condvar. |
+ &a.tanimura; |
+ 21 April 2002 |
&status.new; |
-
+