diff --git a/ja/smp/index.sgml b/ja/smp/index.sgml index 0459a16e0b..20c49e46c1 100644 --- a/ja/smp/index.sgml +++ b/ja/smp/index.sgml @@ -1,6 +1,6 @@ - + @@ -20,7 +20,7 @@ ]> - + &header; @@ -84,6 +84,15 @@ まだ、求められていないようであれば、何かしらの進展がないかどうか、 FreeBSD SMP メーリングリストへメールを送信する価値があります。

+

日付フィールドの持つ意味は、タスクのステータスに依存します。 + 完了したタスクについては、そのタスクが完了した日、 + または完了が報告された日です。 + 現在進行中のタスクに関しては、エントリを最後にアップデートした日付を表します。 + 停止したタスクについては、タスクが停止したことを宣言した日、 + 新しいタスクについては、タスクが一覧に追加された日を意味します。

+ +

タスクはステータス、日付の順に並んでいます。

+

情報源とリンク

@@ -95,9 +104,9 @@
  • SMP に関連した議論は freebsd-smp メーリングリストにおいて行われています。 - FreeBSD ハンドブック + FreeBSD ハンドブック の - + インターネット上のリソース にメーリングリストに関する詳しい情報が載っています。

  • @@ -118,7 +127,7 @@

    この一般タスクリストは完全ではありません。

    - +
    @@ -258,14 +267,14 @@ - + - + @@ -336,7 +345,7 @@ - + @@ -562,7 +571,7 @@ - + @@ -602,7 +611,7 @@ @@ -630,6 +639,271 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -639,13 +913,6 @@ - - - - - - - @@ -653,17 +920,10 @@ - - - - - - - - - + + @@ -674,45 +934,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -720,29 +941,6 @@ - - - - - - - - - - - - - - - - - - - - - @@ -759,13 +957,6 @@ - - - - - - - @@ -785,11 +976,122 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -808,14 +1110,6 @@ - - - - - - - @@ -825,13 +1119,6 @@ - - - - - - - @@ -863,20 +1150,6 @@ - - - - - - - - - - - - - - @@ -907,13 +1180,6 @@ - - - - - - - @@ -928,13 +1194,6 @@ - - - - - - - @@ -943,19 +1202,12 @@ - + - - - - - - - @@ -1015,34 +1267,62 @@ - - - + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - + + + + + + + + + + + + + - - + + + + + + + + + + + - +
    タスク 担当者
    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;
    Make the zone allocator thread-safe. Dag-Erling Smorgrav &a.des; 21 January 2001 &status.done;
    Lock taskqueues. Andrew Reiter, &a.jhb; &a.arr;, &a.jhb; 25 October 2001 &status.done;
    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 &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;
    &status.wip;
    Make KTRACE write into tracefiles asynchronously. &a.jhb; 6 September 2001 &status.wip;
    Make the kernel fully preemptive. &a.jhb; &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;
    &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; &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). &status.wip;
    Lock down TrustedBSD MAC implementation. &a.rwatson; 27 February 2002 &status.wip;
    Lock down newbus infrastructure to support driver fine-graining.
    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;
    &status.stalled;
    Implement trap handler for cmpxchgl on 80386 to support - generic userland atomic operations. &a.jake; 15 May 2001 &status.stalled;
    &status.new;
    Use per-CPU buffers for ktr to reduce synchronization.   5 September 2000 &status.new;
    Remove priority argument from tsleep(), msleep(), cv_*wait*(). &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. &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.   &status.new;
    Convert eventhandlers to sx locks.   7 September 2001 &status.new;
    Add witness checking for lockmgr locks.  
    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().  
    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;

    既知の問題点

    - +
    @@ -1144,27 +1446,41 @@ - - - - + + - - + + + + + + + + + + + + + + + +
    問題点 最終更新 &status.resolved;
    Serial gdb does not work if boot_ddb and boot_gdb options are specified. 5 September 2000 &status.unresolved; 14 July 2002 &status.resolved;
    Serial gdb does not work at 115200 baud. 5 September 2000 &status.unresolved; 14 July 2002 &status.resolved;
    Serial gdb never regains control once 'cont' has been + entered. 14 July 2002 &status.resolved;
    Profiling is broken. 20 February 2001 &status.unresolved;
    jail_sysvipc_allowed is checked in an unsafe manner in + the SYSV IPC syscalls. 5 March 2002 &status.unresolved;