Merge the following from the English version:
1.35 -> 1.99 www/ja/smp/index.sgml
This commit is contained in:
parent
8de2913fb0
commit
c23230e47b
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/www/; revision=37893
1 changed files with 494 additions and 178 deletions
|
@ -1,6 +1,6 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//FreeBSD//DTD HTML 4.01 Transitional-Based Extension//EN" [
|
||||
<!ENTITY base CDATA "..">
|
||||
<!ENTITY date "$FreeBSD: www/ja/smp/index.sgml,v 1.10 2011/08/10 13:03:42 ryusuke Exp $">
|
||||
<!ENTITY date "$FreeBSD: www/ja/smp/index.sgml,v 1.11 2011/10/31 15:53:20 ryusuke Exp $">
|
||||
<!ENTITY title "FreeBSD SMP プロジェクト">
|
||||
<!ENTITY email 'freebsd-smp'>
|
||||
<!ENTITY % navinclude.developers "INCLUDE">
|
||||
|
@ -20,7 +20,7 @@
|
|||
|
||||
]>
|
||||
<!-- The FreeBSD Japanese Documentation Project -->
|
||||
<!-- Original revision: 1.35 -->
|
||||
<!-- Original revision: 1.99 -->
|
||||
|
||||
<html>
|
||||
&header;
|
||||
|
@ -84,6 +84,15 @@
|
|||
まだ、求められていないようであれば、何かしらの進展がないかどうか、
|
||||
FreeBSD SMP メーリングリストへメールを送信する価値があります。</p>
|
||||
|
||||
<p>日付フィールドの持つ意味は、タスクのステータスに依存します。
|
||||
完了したタスクについては、そのタスクが完了した日、
|
||||
または完了が報告された日です。
|
||||
現在進行中のタスクに関しては、エントリを最後にアップデートした日付を表します。
|
||||
停止したタスクについては、タスクが停止したことを宣言した日、
|
||||
新しいタスクについては、タスクが一覧に追加された日を意味します。</p>
|
||||
|
||||
<p>タスクはステータス、日付の順に並んでいます。</p>
|
||||
|
||||
<a name="resources"></a>
|
||||
<h2>情報源とリンク</h2>
|
||||
|
||||
|
@ -95,9 +104,9 @@
|
|||
<li><p>SMP に関連した議論は
|
||||
<a href="mailto:freebsd-smp@FreeBSD.org">freebsd-smp</a>
|
||||
メーリングリストにおいて行われています。
|
||||
<a href="../handbook/index.html">FreeBSD ¥Ï¥ó¥É¥Ö¥Ã¥¯</a>
|
||||
<a href="../../doc/ja_JP.eucJP/books/handbook/index.html">FreeBSD ハンドブック</a>
|
||||
の
|
||||
<a href="../handbook/eresources.html#ERESOURCES-MAIL">
|
||||
<a href="../../doc/ja_JP.eucJP/books/handbook/eresources.html#ERESOURCES-MAIL">
|
||||
インターネット上のリソース</a>
|
||||
にメーリングリストに関する詳しい情報が載っています。</p></li>
|
||||
|
||||
|
@ -118,7 +127,7 @@
|
|||
|
||||
<p>この一般タスクリストは完全ではありません。</p>
|
||||
|
||||
<table class="tblbasic">
|
||||
<table border=3>
|
||||
<tr>
|
||||
<th> タスク </th>
|
||||
<th> 担当者 </th>
|
||||
|
@ -258,14 +267,14 @@
|
|||
|
||||
<tr>
|
||||
<td> Process accounting. </td>
|
||||
<td> Tor Egge, &a.jhb; </td>
|
||||
<td> &a.tegge;, &a.jhb; </td>
|
||||
<td> 5 October 2000 </td>
|
||||
<td> &status.done; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Make ethernet drivers thread-safe. </td>
|
||||
<td> Bill Paul </td>
|
||||
<td> &a.wpaul; </td>
|
||||
<td> 15 October 2000 </td>
|
||||
<td> &status.done; </td>
|
||||
</tr>
|
||||
|
@ -336,7 +345,7 @@
|
|||
|
||||
<tr>
|
||||
<td> Make the zone allocator thread-safe. </td>
|
||||
<td> Dag-Erling Smorgrav </td>
|
||||
<td> &a.des; </td>
|
||||
<td> 21 January 2001 </td>
|
||||
<td> &status.done; </td>
|
||||
</tr>
|
||||
|
@ -562,7 +571,7 @@
|
|||
|
||||
<tr>
|
||||
<td> Lock taskqueues. </td>
|
||||
<td> Andrew Reiter, &a.jhb; </td>
|
||||
<td> &a.arr;, &a.jhb; </td>
|
||||
<td> 25 October 2001 </td>
|
||||
<td> &status.done; </td>
|
||||
</tr>
|
||||
|
@ -602,7 +611,7 @@
|
|||
<td> 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. </td>
|
||||
<td> &a.jhb; </td>
|
||||
<td> 5 January 2002 </td>
|
||||
|
@ -630,6 +639,271 @@
|
|||
<td> &status.done; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Move to explicit reference counting for soft vnode references.
|
||||
</td>
|
||||
<td> &a.phk; </td>
|
||||
<td> 8 March 2002 </td>
|
||||
<td> &status.done; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Initialize mutex pools early enough that sx locks can be used
|
||||
for VM. </td>
|
||||
<td> &a.green; </td>
|
||||
<td> 14 March 2002 </td>
|
||||
<td> &status.done; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Place a global lock (sellock) around selinfo structures to fix a
|
||||
variety of lock order reversals, and make select() MP-safe. </td>
|
||||
<td> &a.alfred;, &a.davidc; </td>
|
||||
<td> 14 March 2002 </td>
|
||||
<td> &status.done; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Push down Giant on read, write, pread, pwrite system calls,
|
||||
acquiring Giant in the per-subsystem fileop layer for sockets, VFS,
|
||||
etc.</td>
|
||||
<td> &a.alfred; </td>
|
||||
<td> 15 March 2002 </td>
|
||||
<td> &status.done; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Lock down kernel module structures. </td>
|
||||
<td> &a.arr; </td>
|
||||
<td> 18 March 2002 </td>
|
||||
<td> &status.done; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Lock down kernel linker globals.</td>
|
||||
<td> &a.arr; </td>
|
||||
<td> 18 March 2002 </td>
|
||||
<td> &status.done; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Rewrite kernel memory allocator to be a slab allocator that
|
||||
uses per-cpu caches. </td>
|
||||
<td> &a.jeff; </td>
|
||||
<td> 21 March 2002 </td>
|
||||
<td> &status.done; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Replace incorrect use of MD critical section API to disable
|
||||
interrupts with a specific interrupt disable API. </td>
|
||||
<td> &a.imp;, &a.dfr;, &a.benno;, &a.jhb; </td>
|
||||
<td> 21 March 2002 </td>
|
||||
<td> &status.done; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Lock down access to the shared p_args "process arguments"
|
||||
structure through appropriate protection of that structure and
|
||||
references to it. </td>
|
||||
<td> &a.mini; </td>
|
||||
<td> 31 March 2002 </td>
|
||||
<td> &status.done; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Move from flags/tsleep lock to sx locks to protect sysctl
|
||||
tree from updates during sysctl operations. </td>
|
||||
<td> &a.mini; </td>
|
||||
<td> 1 April 2002 </td>
|
||||
<td> &status.done; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Create/port userland tool to manage KTR event dumps. </td>
|
||||
<td> &a.jake; </td>
|
||||
<td> 1 April 2002 </td>
|
||||
<td> &status.done; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Create MTX_SYSINIT and SX_SYSINIT macros that allow for
|
||||
initializing locks that are subsystem independent. </td>
|
||||
<td> &a.arr; </td>
|
||||
<td> 2 April 2002 </td>
|
||||
<td> &status.done; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Lock down the global securelevel variable. </td>
|
||||
<td> &a.arr; </td>
|
||||
<td> 2 April 2002 </td>
|
||||
<td> &status.done; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Make grow_stack() MI. Possibly even a macro or inline. </td>
|
||||
<td> &a.alc; </td>
|
||||
<td> 6 April 2002 </td>
|
||||
<td> &status.done; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> 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. </td>
|
||||
<td> &a.alfred;, &a.tanimura; </td>
|
||||
<td> 8 April 2002 </td>
|
||||
<td> &status.done; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Lock struct pargs. </td>
|
||||
<td> &a.mini; </td>
|
||||
<td> 9 April 2002 </td>
|
||||
<td> &status.done; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Make {o,}sigreturn() MPSAFE. </td>
|
||||
<td> &a.alc; </td>
|
||||
<td> 11 April 2002 </td>
|
||||
<td> &status.done; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Rewrite kernel memory allocator so that Giant is not required
|
||||
for malloc() or free(). </td>
|
||||
<td> &a.jeff; </td>
|
||||
<td> 2 May 2002 </td>
|
||||
<td> &status.done; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> 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. </td>
|
||||
<td> &a.green;, &a.alc; </td>
|
||||
<td> 3 May 2002 </td>
|
||||
<td> &status.done; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> 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. </td>
|
||||
<td> &a.alc; </td>
|
||||
<td> 9 May 2002 </td>
|
||||
<td> &status.done; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Push down Giant in mprotect(), minherit(), and madvise() so
|
||||
that it is no longer acquired and released directly. </td>
|
||||
<td> &a.alc; </td>
|
||||
<td> 18 May 2002 </td>
|
||||
<td> &status.done; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Update suser() and p_can*() APIs to accept threads instead of
|
||||
processes. </td>
|
||||
<td> &a.jhb; </td>
|
||||
<td> 18 May 2002 </td>
|
||||
<td> &status.done; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Broadly transition to td_ucred from p_ucred once KSE dependencies
|
||||
are in place. </td>
|
||||
<td> &a.jhb; </td>
|
||||
<td> 18 May 2002 </td>
|
||||
<td> &status.done; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Add a witness_sleep() check to uma_zalloc() to catch code
|
||||
calling malloc() or uma_zalloc() while holding non-sleepable
|
||||
locks. </td>
|
||||
<td> &a.jhb; </td>
|
||||
<td> 20 May 2002 </td>
|
||||
<td> &status.done; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Optimize UP support by changing spin locks to only perform
|
||||
critical section enter and exits. </td>
|
||||
<td> &a.jhb; </td>
|
||||
<td> 21 May 2002 </td>
|
||||
<td> &status.done; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Make sleep mutexes spin if the current lock holder is
|
||||
executing on another CPU. </td>
|
||||
<td> &a.jhb; </td>
|
||||
<td> 21 May 2002 </td>
|
||||
<td> &status.done; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Add support for the IA32 pause instruction to spin loops in
|
||||
locks. </td>
|
||||
<td> &a.jhb; </td>
|
||||
<td> 21 May 2002 </td>
|
||||
<td> &status.done; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Make KTRACE write into tracefiles asynchronously. </td>
|
||||
<td> &a.jhb; </td>
|
||||
<td> 7 June 2002 </td>
|
||||
<td> &status.done; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Remove Giant from jail(2). </td>
|
||||
<td> &a.arr; </td>
|
||||
<td> 25 June 2002 </td>
|
||||
<td> &status.done; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Remove Giant from modnext(2), modfnext(2),
|
||||
modstat(2),and modfind(2).</td>
|
||||
<td> &a.arr; </td>
|
||||
<td> 25 June 2002 </td>
|
||||
<td> &status.done; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Fix synchronization of TLB flushes and invlpg() on x86 SMP. </td>
|
||||
<td> &a.peter; </td>
|
||||
<td> 12 July 2002 </td>
|
||||
<td> &status.done; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Make cpu_coredump MI. </td>
|
||||
<td> &a.peter; </td>
|
||||
<td> 7 September 2002 </td>
|
||||
<td> &status.done; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Add a subsystem lock to the accounting code. </td>
|
||||
<td> &a.arr; </td>
|
||||
<td> 11 September 2002 </td>
|
||||
<td> &status.done; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Lock down TrustedBSD MAC implementation. </td>
|
||||
<td> &a.rwatson; </td>
|
||||
<td> 11 November 2002 </td>
|
||||
<td> &status.done; </td>
|
||||
</tr>
|
||||
|
||||
<!-- WIP -->
|
||||
|
||||
<tr>
|
||||
|
@ -639,13 +913,6 @@
|
|||
<td> &status.wip; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Make KTRACE write into tracefiles asynchronously. </td>
|
||||
<td> &a.jhb; </td>
|
||||
<td> 6 September 2001 </td>
|
||||
<td> &status.wip; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Make the kernel fully preemptive. </td>
|
||||
<td> &a.jhb; </td>
|
||||
|
@ -653,17 +920,10 @@
|
|||
<td> &status.wip; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Convert vm_map locks to sx locks. </td>
|
||||
<td> &a.green; </td>
|
||||
<td> 18 October 2001 </td>
|
||||
<td> &status.wip; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Lock down the tty subsystem. </td>
|
||||
<td> Dick Garner, Jeremy Scofield </td>
|
||||
<td> 16 November 2001 </td>
|
||||
<td> Dick Garner, Jeremy Scofield, &a.tmm; </td>
|
||||
<td> 2 April 2002 </td>
|
||||
<td> &status.wip; </td>
|
||||
</tr>
|
||||
|
||||
|
@ -674,45 +934,6 @@
|
|||
<td> &status.wip; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Make sleep mutexes spin if the current lock holder is
|
||||
executing on another CPU. </td>
|
||||
<td> &a.jhb; </td>
|
||||
<td> 16 November 2001 </td>
|
||||
<td> &status.wip; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Add support for the IA32 pause instruction to spin loops in
|
||||
locks. </td>
|
||||
<td> &a.jhb; </td>
|
||||
<td> 16 November 2001 </td>
|
||||
<td> &status.wip; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Optimize UP support by changing spin locks to only perform
|
||||
critical section enter and exits. </td>
|
||||
<td> &a.jhb; </td>
|
||||
<td> 20 December 2001 </td>
|
||||
<td> &status.wip; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Implement lazy interrupt thread switching (context
|
||||
stealing) on i386. </td>
|
||||
<td> &a.bmilekic; </td>
|
||||
<td> 4 January 2002 </td>
|
||||
<td> &status.wip; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Fix synchronization of TLB flushes and invlpg() on x86 SMP. </td>
|
||||
<td> &a.peter; </td>
|
||||
<td> 4 January 2002 </td>
|
||||
<td> &status.wip; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Lock pipe implementation: sigio/fown-related evil </td>
|
||||
<td> &a.alfred; </td>
|
||||
|
@ -720,29 +941,6 @@
|
|||
<td> &status.wip; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Broadly transition to td_ucred from p_ucred once KSE dependencies
|
||||
are in place. </td>
|
||||
<td> &a.jhb; </td>
|
||||
<td> 27 February 2002 </td>
|
||||
<td> &status.wip; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Update suser() and p_can*() APIs to accept threads instead of
|
||||
processes. </td>
|
||||
<td> &a.jhb; </td>
|
||||
<td> 27 February 2002 </td>
|
||||
<td> &status.wip; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Lock down kernel linker and module structures </td>
|
||||
<td> &a.arr; </td>
|
||||
<td> 27 February 2002 </td>
|
||||
<td> &status.wip; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Make use of process locking and process reference counting
|
||||
to protect debugging interfaces (and procfs). </td>
|
||||
|
@ -759,13 +957,6 @@
|
|||
<td> &status.wip; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Lock down TrustedBSD MAC implementation. </td>
|
||||
<td> &a.rwatson; </td>
|
||||
<td> 27 February 2002 </td>
|
||||
<td> &status.wip; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Lock down newbus infrastructure to support driver
|
||||
fine-graining. </td>
|
||||
|
@ -785,11 +976,122 @@
|
|||
|
||||
<tr>
|
||||
<td> SMPng architecture document. </td>
|
||||
<td> &a.jhb; </td>
|
||||
<td> &a.jhb;, &a.rwatson; </td>
|
||||
<td> 28 February 2002 </td>
|
||||
<td> &status.wip; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> 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. </td>
|
||||
<td> &a.jeff; </td>
|
||||
<td> 11 March 2002 </td>
|
||||
<td> &status.wip; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Create mutex profiling tool for the kernel so as to measure
|
||||
contention and behavior of kernel mutexes. </td>
|
||||
<td> &a.eivind;, &a.des; </td>
|
||||
<td> 31 March 2002 </td>
|
||||
<td> &status.wip; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Lock eventhandlers. </td>
|
||||
<td> &a.msmith;, &a.mini; </td>
|
||||
<td> 8 April 2002 </td>
|
||||
<td> &status.wip; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Lock sysctl hierarchy and access methods. </td>
|
||||
<td> &a.mini; </td>
|
||||
<td> 9 April 2002 </td>
|
||||
<td> &status.wip; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Document existing vm_map locking and verify it's correctness. </td>
|
||||
<td> &a.alc; </td>
|
||||
<td> 18 May 2002 </td>
|
||||
<td> &status.wip; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Document existing vm_object locking and verify it's
|
||||
correctness. </td>
|
||||
<td> &a.alc; </td>
|
||||
<td> 4 May 2002 </td>
|
||||
<td> &status.wip; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Implement generic turnstiles to use when blocking on non-sleepable
|
||||
locks. </td>
|
||||
<td> &a.jhb; </td>
|
||||
<td> 23 May 2002 </td>
|
||||
<td> &status.wip; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Lock down linker_file_t structures in the kernel linker.</td>
|
||||
<td> &a.arr; </td>
|
||||
<td> 19 June 2002 </td>
|
||||
<td> &status.wip; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Lock down the SysV IPC code. </td>
|
||||
<td> &a.alfred; </td>
|
||||
<td> 13 August 2002 </td>
|
||||
<td> &status.wip; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Review locking strategy and correctness of VFS operations
|
||||
and fix up various failure modes associated with enabling
|
||||
VFS locking assertions. </td>
|
||||
<td> &a.jeff; </td>
|
||||
<td> 10 December 2002 </td>
|
||||
<td> &status.wip; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Document in-vnode locking strategy, clean it up, remove
|
||||
interlock, switch to sx locks. </td>
|
||||
<td> &a.jeff; </td>
|
||||
<td> 10 December 2002 </td>
|
||||
<td> &status.wip; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Implement lazy interrupt thread switching (context
|
||||
stealing) on i386. </td>
|
||||
<td> &a.bmilekic;, &a.kan; </td>
|
||||
<td> 10 December 2002 </td>
|
||||
<td> &status.wip; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Implement lazy interrupt thread switching (context
|
||||
stealing) on sparc64. </td>
|
||||
<td> &a.jake; </td>
|
||||
<td> 10 December 2002 </td>
|
||||
<td> &status.wip; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> 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. </td>
|
||||
<td> &a.alc; </td>
|
||||
<td> 10 December 2002 </td>
|
||||
<td> &status.wip; </td>
|
||||
</tr>
|
||||
|
||||
<!-- Stalled -->
|
||||
|
||||
<tr>
|
||||
|
@ -808,14 +1110,6 @@
|
|||
<td> &status.stalled; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Implement trap handler for cmpxchgl on 80386 to support
|
||||
generic userland atomic operations. </td>
|
||||
<td> &a.jake; </td>
|
||||
<td> 15 May 2001 </td>
|
||||
<td> &status.stalled; </td>
|
||||
</tr>
|
||||
|
||||
<!-- Not Started -->
|
||||
|
||||
<tr>
|
||||
|
@ -825,13 +1119,6 @@
|
|||
<td> &status.new; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Use per-CPU buffers for ktr to reduce synchronization. </td>
|
||||
<td> </td>
|
||||
<td> 5 September 2000 </td>
|
||||
<td> &status.new; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Remove priority argument from tsleep(), msleep(),
|
||||
cv_*wait*(). </td>
|
||||
|
@ -863,20 +1150,6 @@
|
|||
<td> &status.new; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Make cpu_core MI. </td>
|
||||
<td> </td>
|
||||
<td> 13 June 2001 </td>
|
||||
<td> &status.new; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Lock struct pargs. </td>
|
||||
<td> </td>
|
||||
<td> 20 June 2001 </td>
|
||||
<td> &status.new; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Specify priorities for condition variables, semaphores, and
|
||||
sx locks. </td>
|
||||
|
@ -907,13 +1180,6 @@
|
|||
<td> &status.new; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Make grow_stack() MI. Possibly even a macro or inline. </td>
|
||||
<td> </td>
|
||||
<td> 7 September 2001 </td>
|
||||
<td> &status.new; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Fix *hold (e.g. crhold) to return reference to object. </td>
|
||||
<td> </td>
|
||||
|
@ -928,13 +1194,6 @@
|
|||
<td> &status.new; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Convert eventhandlers to sx locks. </td>
|
||||
<td> </td>
|
||||
<td> 7 September 2001 </td>
|
||||
<td> &status.new; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Add witness checking for lockmgr locks. </td>
|
||||
<td> </td>
|
||||
|
@ -943,19 +1202,12 @@
|
|||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Add ICU spin locks on ia64 and sparc64. </td>
|
||||
<td> Add ICU spin locks on ia64. </td>
|
||||
<td> </td>
|
||||
<td> 4 January 2002 </td>
|
||||
<td> &status.new; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Lock sysctl hierarchy and access methods. </td>
|
||||
<td> </td>
|
||||
<td> 25 February 2002 </td>
|
||||
<td> &status.new; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Fast-path push-down of Giant for VOP_READ() and VOP_WRITE(). </td>
|
||||
<td> </td>
|
||||
|
@ -1015,34 +1267,62 @@
|
|||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Move to explicit reference counting for soft vnode references.
|
||||
</td>
|
||||
<td> &a.jeff; </td>
|
||||
<td> 27 February 2002 </td>
|
||||
<td> Expand mutex profiling tool to also profile sx locks. </td>
|
||||
<td> &a.eivind;, &a.des; </td>
|
||||
<td> 1 April 2002 </td>
|
||||
<td> &status.new; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Document in-vnode locking strategy, clean it up, remove
|
||||
interlock, switch to sx locks. </td>
|
||||
<td> &a.jeff; </td>
|
||||
<td> 27 February 2002 </td>
|
||||
<td> Implement atomic_fetchadd() for int's and long's with acq and rel
|
||||
versions. </td>
|
||||
<td> </td>
|
||||
<td> 23 May 2002 </td>
|
||||
<td> &status.new; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Implement a simple reference count API using atomic operations and
|
||||
use this to replace locks that just protect a reference count. </td>
|
||||
<td> </td>
|
||||
<td> 23 May 2002 </td>
|
||||
<td> &status.new; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> 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.</td>
|
||||
<td> &a.jhb; </td>
|
||||
<td> 23 May 2002 </td>
|
||||
<td> &status.new; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Add a witness_sleep() check to copyin/out() and s/fuword(). </td>
|
||||
<td> &a.jhb; </td>
|
||||
<td> 7 June 2002 </td>
|
||||
<td> &status.new; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Move to shared lock for VOP_GETATTR() to reduce blocking during
|
||||
frequent lightweight VFS operations. Review strategy for other
|
||||
vnode operations. </td>
|
||||
<td> &a.jeff; </td>
|
||||
<td> 27 February 2002 </td>
|
||||
<td> 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. </td>
|
||||
<td> &a.jhb; </td>
|
||||
<td> 7 June 2002 </td>
|
||||
<td> &status.new; </td>
|
||||
</tr>
|
||||
|
||||
<!--
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> D M 2002 </td>
|
||||
<td> &status.new; </td>
|
||||
</tr>
|
||||
|
@ -1053,7 +1333,7 @@
|
|||
<p>以下のテーブルは、ネットワークスタックのマルチスレッド化に関するサブタスクの
|
||||
TODO リストです。</p>
|
||||
|
||||
<table class="tblbasic">
|
||||
<table border=3>
|
||||
<tr>
|
||||
<th> タスク </th>
|
||||
<th> 担当者 </th>
|
||||
|
@ -1070,20 +1350,42 @@
|
|||
|
||||
<!-- WIP -->
|
||||
|
||||
<!-- Not Started -->
|
||||
<tr>
|
||||
<td> Lock down struct socket. </td>
|
||||
<td> &a.tanimura; </td>
|
||||
<td> 21 April 2002 </td>
|
||||
<td> &status.wip; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Lock down struct inpcb. </td>
|
||||
<td> &a.hsu; </td>
|
||||
<td> 29 April 2002 </td>
|
||||
<td> &status.wip; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Lock struct ifnet. </td>
|
||||
<td> </td>
|
||||
<td> 19 January 2001 </td>
|
||||
<td> &a.hsu; </td>
|
||||
<td> 29 January 2003 </td>
|
||||
<td> &status.wip; </td>
|
||||
</tr>
|
||||
|
||||
<!-- Not Started -->
|
||||
|
||||
<tr>
|
||||
<td> Reduce contention upon locking a socket buffer by replacing
|
||||
tsleep() and wakeup() with a condvar. </td>
|
||||
<td> &a.tanimura; </td>
|
||||
<td> 21 April 2002 </td>
|
||||
<td> &status.new; </td>
|
||||
</tr>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="issues"></a>
|
||||
<h2>既知の問題点</h2>
|
||||
|
||||
<table class="tblbasic">
|
||||
<table border=3>
|
||||
<tr>
|
||||
<th> 問題点 </th>
|
||||
<th> 最終更新 </th>
|
||||
|
@ -1144,27 +1446,41 @@
|
|||
<td> &status.resolved; </td>
|
||||
</tr>
|
||||
|
||||
<!-- unresolved -->
|
||||
|
||||
<tr>
|
||||
<td> Serial gdb does not work if boot_ddb and boot_gdb options
|
||||
are specified. </td>
|
||||
<td> 5 September 2000 </td>
|
||||
<td> &status.unresolved; </td>
|
||||
<td> 14 July 2002 </td>
|
||||
<td> &status.resolved; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Serial gdb does not work at 115200 baud. </td>
|
||||
<td> 5 September 2000 </td>
|
||||
<td> &status.unresolved; </td>
|
||||
<td> 14 July 2002 </td>
|
||||
<td> &status.resolved; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> Serial gdb never regains control once 'cont' has been
|
||||
entered. </td>
|
||||
<td> 14 July 2002 </td>
|
||||
<td> &status.resolved; </td>
|
||||
</tr>
|
||||
|
||||
<!-- unresolved -->
|
||||
|
||||
<tr>
|
||||
<td> Profiling is broken. </td>
|
||||
<td> 20 February 2001 </td>
|
||||
<td> &status.unresolved; </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> jail_sysvipc_allowed is checked in an unsafe manner in
|
||||
the SYSV IPC syscalls. </td>
|
||||
<td> 5 March 2002 </td>
|
||||
<td> &status.unresolved; </td>
|
||||
</tr>
|
||||
|
||||
<!--
|
||||
<tr>
|
||||
<td> </td>
|
||||
|
@ -1270,7 +1586,7 @@
|
|||
<li>
|
||||
<p>An updated <a
|
||||
href="http://people.freebsd.org/~jasone/smp/smpng_patch_9.7">patch</a>
|
||||
is available for download. This patch is proably what will
|
||||
is available for download. This patch is probably what will
|
||||
actually get committed.</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
@ -1357,8 +1673,8 @@
|
|||
<li>
|
||||
<p>&a.cp; has provided the PostScript versions of his
|
||||
presentation slides for the
|
||||
<a href="smp_meeting_slides_1.ps">first day</a> and
|
||||
<a href="smp_meeting_slides_2.ps">second day</a> of the
|
||||
<a href="http://people.FreeBSD.org/~jasone/smp/smp_meeting_slides_1.ps">first day</a> and
|
||||
<a href="http://people.FreeBSD.org/~jasone/smp/smp_meeting_slides_2.ps">second day</a> of the
|
||||
SMP meeting.</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
@ -1367,7 +1683,7 @@
|
|||
<ul>
|
||||
<li>
|
||||
<p>Here's a copy of the
|
||||
<a href="smp_meeting_summary.txt">SMP meeting summary</a>
|
||||
<a href="http://docs.freebsd.org/cgi/getmsg.cgi?fetch=226208+0+archive/2000/freebsd-smp/20000625.freebsd-smp">SMP meeting summary</a>
|
||||
that was posted to the -smp mailing list.</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
@ -1376,7 +1692,7 @@
|
|||
<ul>
|
||||
<li>
|
||||
<p>Here's a copy of the
|
||||
<a href="smp_project_announcement.txt">SMP project announcement</a>
|
||||
<a href="http://docs.freebsd.org/cgi/getmsg.cgi?fetch=154884+0+archive/2000/freebsd-current/20000625.freebsd-current">SMP project announcement</a>
|
||||
that was posted to the -current mailing list.</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
|
Loading…
Reference in a new issue