Merge the following from the English version:

1.127 -> 1.141	www/ja/smp/index.sgml
This commit is contained in:
Ryusuke SUZUKI 2011-11-27 00:16:52 +00:00
parent 521eee01fa
commit 4ffa86a702
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/www/; revision=37972

View file

@ -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.13 2011/11/12 12:13:41 ryusuke Exp $">
<!ENTITY date "$FreeBSD: www/ja/smp/index.sgml,v 1.14 2011/11/19 16:25:31 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.127 -->
<!-- Original revision: 1.141 -->
<html>
&header;
@ -39,7 +39,7 @@
<a name="goal"></a>
<h2>プロジェクトの目標</h2>
<p>FreeBSD SMP プロジェクト (しばしば SMPng (次世代 SMP)
<p>FreeBSD Symmetric MultiProcessing (SMP) プロジェクト (しばしば SMPng (次世代 SMP)
と呼ばれます) は FreeBSD カーネル向けの fine-grained な
SMP サポートを実装することに集中しています。
これは、2003 年 1 月の 5.0-RELEASE においてデビューしました。
@ -83,21 +83,22 @@
現在進行中のタスクに関しては、エントリを最後にアップデートした日付を表します。
停止したタスクについては、タスクが停止したことを宣言した日、
新しいタスクについては、タスクが一覧に追加された日を意味します。</p>
<p>個々のデバイスドライバのロックの状況については、
<a href="http://www.FreeBSD.org/projects/busdma">the busdma and
SMPng driver conversion webpage</a> において公開されています。</p>
<p>ネットワークスタックのロックの状況については、Robert Watson の
<a href="http://www.watson.org/~robert/freebsd/netperf/">netperf
ウェブページ</a>、および FreeBSD.org の <a href="../projects/netperf/">Netperf
ウェブページ</a> で見ることができます。</p>
<p>タスクはステータス、日付の順に並んでいます。</p>
<a name="resources"></a>
<h2>情報源とリンク</h2>
<ul>
<li><p>
<a href="http://storm.uk.FreeBSD.org/~hiten/smp_synch_rules.html">
SMP kernel synchronization rules</a>.</p></li>
<li><p>SMP に関連した議論は
<a href="mailto:freebsd-smp@FreeBSD.org">freebsd-smp</a>
メーリングリストにおいて行われています。
@ -113,6 +114,46 @@
プロジェクトページ</a>
を管理しています。</p></li>
<li><p>&a.rwatson; は、SMP に関連した
<a href="../projects/netperf/">Netperf project</a>
のネットワークパフォーマンスに関するウェブページを管理しています。
さらに、彼は <a
href="http://www.watson.org/~robert/freebsd/netperf/">変更点のログやその他の情報を含む個人のウェブページ</a>
を持っています。</p></li>
<li><p>以下は、カーネル同期およびスレッドプリミティブについてのマニュアルページです。</p>
<ul>
<li><a href="http://www.freebsd.org/cgi/man.cgi?query=mutex&amp;apropos=0&amp;sektion=9&amp;manpath=FreeBSD+6.0-current">Kernel Mutexes (mutex(9))</a></li>
<li><a href="http://www.freebsd.org/cgi/man.cgi?query=mtx_pool&amp;apropos=0&amp;sektion=9&amp;manpath=FreeBSD+6.0-current">Kernel Mutex Pools (mtx_pool(9))</a></li>
<li><a href="http://www.freebsd.org/cgi/man.cgi?query=critical&amp;apropos=0&amp;sektion=9&amp;manpath=FreeBSD+6.0-current">Kernel Critical Sections (critical(9))</a></li>
<li><a href="http://www.freebsd.org/cgi/man.cgi?query=sx&amp;apropos=0&amp;sektion=9&amp;manpath=FreeBSD+6.0-current">Kernel Shared/Exclusive Locks (sx(9))</a></li>
<li><a href="http://www.freebsd.org/cgi/man.cgi?query=condvar&amp;apropos=0&amp;sektion=9&amp;manpath=FreeBSD+6.0-current">Kernel Condition Variables (condvar(9))</a></li>
<li><a href="http://www.freebsd.org/cgi/man.cgi?query=sema&amp;apropos=0&amp;sektion=9&amp;manpath=FreeBSD+6.0-current">Kernel Semaphores (sema(9))</a></li>
<li><a href="http://www.freebsd.org/cgi/man.cgi?query=sleep&amp;apropos=0&amp;sektion=9&amp;manpath=FreeBSD+6.0-current">Kernel sleep/wakeup API (sleep(9))</a></li>
<li><a href="http://www.freebsd.org/cgi/man.cgi?query=kthread&amp;apropos=0&amp;sektion=9&amp;manpath=FreeBSD+6.0-current">Kernel Threads (kthread(9))</a></li>
<li><a href="http://www.freebsd.org/cgi/man.cgi?query=ithread&amp;apropos=0&amp;sektion=9&amp;manpath=FreeBSD+6.0-current">Interrupt Threads (ithread(9))</a></li>
<li><a href="http://www.freebsd.org/cgi/man.cgi?query=swi&amp;apropos=0&amp;sektion=9&amp;manpath=FreeBSD+6.0-current">Software Interrupt Threads (swi(9))</a></li>
</ul>
<p>また、古い <a href="http://www.freebsd.org/cgi/man.cgi?query=spl&amp;apropos=0&amp;sektion=9&amp;manpath=FreeBSD+6.0-current">SPL マニュアルページ</a>
には、以前の SMP 同期モデルの情報が反映されています。</p>
</li>
<li><p>
Hiten Pandya による <a
href="http://storm.uk.FreeBSD.org/~hiten/smp_synch_rules.html">
SMP kernel synchronization rules</a>。</p></li>
<li><p>&a.dillon; は彼が SMP プロジェクトで何をしているのかについての
<a href="http://apollo.backplane.com/FreeBSDSmp/">
ウェブページ</a>
@ -122,22 +163,22 @@
<p>&a.jhb; による
<a href="http://www.usenix.org/events/bsdcon02/full_papers/baldwin/baldwin_html/index.html">
"Locking in the Multithreaded FreeBSD Kernel" USENIX paper</a>。
</p>
</p>
</li>
<li>
<p>
&a.hsu; による <a href="http://www.usenix.org/publications/library/proceedings/bsdcon03/tech/hsu.html">
"Reasoning about SMP in FreeBSD" BSDCon'03 paper</a>。
</p>
</li>
<li>
<p>&a.jeff; による
<a href="http://www.usenix.org/publications/library/proceedings/bsdcon03/tech/roberson.html">
"ULE: A Modern Scheduler for FreeBSD" BSDCon'03 paper</a>。
</p>
</li>
<li>
<p>&a.hsu; による
<a href="http://www.usenix.org/publications/library/proceedings/bsdcon03/tech/hsu.html">
"Reasoning about SMP in FreeBSD" BSDCon'03 paper</a>。
</p>
</li>
<li>
<p>&a.jeff; による
<a href="http://www.usenix.org/publications/library/proceedings/bsdcon03/tech/roberson.html">
"ULE: A Modern Scheduler for FreeBSD" BSDCon'03 paper</a>。
</p>
</li>
</ul>
<a name="subsystems"></a>
@ -146,8 +187,8 @@
<p>以下はまだ未完成のハイレベルのカーネルサブシステムと、現在、
SMP アーキテクチャと安定性について作業している活動的なスタッフの一覧です。</p>
<table border=3>
<tr>
<table class="tasklist" border="3" cellpadding="2" cellspacing="0">
<tr class="heading">
<th> サブシステム </th>
<th> ステータス </th>
<th> 最終更新 </th>
@ -207,14 +248,14 @@
<td> File descriptors </td>
<td> &status.done; </td>
<td> 5 February 2003 </td>
<td> &a.alfred;, &a.tanimura; </td>
<td> &a.alfred;, &a.tanimura; &a.rwatson; </td>
</tr>
<tr>
<td> TTY subsystem </td>
<td> &status.new; </td>
<td> 31 May 2004 </td>
<td> &nbsp; </td>
<td> &status.wip; </td>
<td> 24 July 2004 </td>
<td> &a.phk; </td>
</tr>
<tr>
@ -226,15 +267,15 @@
<tr>
<td> Socket structures and system calls </td>
<td> &status.wip; </td>
<td> 4 October 2003 </td>
<td> &a.tanimura;, &a.hsu;, &a.sam; &a.rwatson; </td>
<td> &status.done; </td>
<td> 25 November 2004 </td>
<td> &a.sam;, &a.rwatson; </td>
</tr>
<tr>
<td> KQueue </td>
<td> &status.wip; </td>
<td> 23 April 2004 </td>
<td> &status.done; </td>
<td> 24 November 2004 </td>
<td> &a.jmg;, &a.green; </td>
</tr>
@ -242,7 +283,7 @@
<td> IPv4, IPv6 </td>
<td> &status.wip; </td>
<td> 23 April 2004 </td>
<td> &a.hsu;, &a.jennifer;, &a.sam;, &a.rwatson; </td>
<td> &a.jennifer;, &a.hsu;, &a.sam;, &a.rwatson;, &a.gnn; </td>
</tr>
<tr>
@ -255,7 +296,7 @@
<tr>
<td> netatalk </td>
<td> &status.wip; </td>
<td> 23 April 2004 </td>
<td> 24 November 2004 </td>
<td> &a.rwatson; </td>
</tr>
@ -263,15 +304,22 @@
<td> Network stack infrastructure </td>
<td> &status.wip; </td>
<td> 4 October 2003 </td>
<td> &a.hsu;, &a.sam; &a.rwatson; &a.mlaier;, &a.luigi;, Maurycy Pawlowski-Wieronski &lt;maurycy@fouk.org&gt;, &a.brooks;,
<td> &a.hsu;, &a.sam;, &a.rwatson;, &a.mlaier;, &a.luigi;, Maurycy Pawlowski-Wieronski &lt;maurycy@fouk.org&gt;, &a.brooks;,
&a.rik; </td>
</tr>
<tr>
<td> NFS Client, Server </td>
<td> &status.wip; </td>
<td> NFS Client </td>
<td> &status.new; </td>
<td> 23 April 2004 </td>
<td> &a.rwatson;, Rick Macklem (rick at snowhite.cis.uoguelph.ca)</td>
<td> &nbsp; </td>
</tr>
<tr>
<td> NFS Server </td>
<td> &status.wip; </td>
<td> 24 November 2004 </td>
<td> &a.rwatson; </td>
</tr>
</table>
@ -281,8 +329,8 @@
<p>この一般タスクリストは完全ではありません。</p>
<table border=3>
<tr>
<table class="tasklist" cellpadding="2" cellspacing="0" border="3">
<tr class="heading">
<th> タスク </th>
<th> 担当者 </th>
<th> 最終更新 </th>
@ -1174,11 +1222,49 @@
<tr>
<td> Remove Giant from jail(2). </td>
<td> &a.arr; &a.rwatson; </td>
<td> &a.arr;, &a.rwatson; </td>
<td> 23 April 2004 </td>
<td> &status.done; </td>
</tr>
<tr>
<td> Add subsystem locking to NFSv2, NFSv3 server, permitting upcalls
and other network-related elements to run Giant-free. </td>
<td> &a.rwatson; </td>
<td> 24 July 2004 </td>
<td> &status.done; </td>
</tr>
<tr>
<td> Make the kernel fully preemptive. </td>
<td> &a.jhb; </td>
<td> 24 November 2004 </td>
<td> &status.done; </td>
</tr>
<tr>
<td> Lock pipe implementation: sigio/fown-related evil </td>
<td> &a.alfred; </td>
<td> 24 November 2004 </td>
<td> &status.done; </td>
</tr>
<tr>
<td> Lock down the SysV IPC code. </td>
<td> &a.alfred; </td>
<td> 24 November 2004 </td>
<td> &status.done; </td>
</tr>
<tr>
<td> Lock contention measurement tool to measure heat of various
locks, including Giant, and permit more directed performance and
locking strategy optimization. </td>
<td> &a.rwatson; </td>
<td> 24 November 2004 </td>
<td> &status.done; </td>
</tr>
<!-- WIP -->
<tr>
@ -1188,17 +1274,10 @@
<td> &status.wip; </td>
</tr>
<tr>
<td> Make the kernel fully preemptive. </td>
<td> &a.jhb; </td>
<td> 7 September 2001 </td>
<td> &status.wip; </td>
</tr>
<tr>
<td> Lock down the tty subsystem. </td>
<td> Dick Garner, Jeremy Scofield, &a.tmm; </td>
<td> 2 April 2002 </td>
<td> Dick Garner, Jeremy Scofield, &a.tmm;, &a.phk; </td>
<td> 24 July 2004 </td>
<td> &status.wip; </td>
</tr>
@ -1209,13 +1288,6 @@
<td> &status.wip; </td>
</tr>
<tr>
<td> Lock pipe implementation: sigio/fown-related evil </td>
<td> &a.alfred; </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>
@ -1244,8 +1316,8 @@
<td> Remove the MP safe syscall flag from the syscall table
and add explicit mtx_lock/unlock's of Giant to all
syscalls. </td>
<td> &a.dillon;, &a.mux; </td>
<td> 28 February 2002 </td>
<td> &a.dillon;, &a.mux;, &a.rwatson; </td>
<td> 24 July 2004 </td>
<td> &status.wip; </td>
</tr>
@ -1295,13 +1367,6 @@
<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
@ -1354,13 +1419,6 @@
<td> &status.wip; </td>
</tr>
<tr>
<td> Add locking to NFS. </td>
<td> &a.rwatson; </td>
<td> 23 April 2004 </td>
<td> &status.wip; </td>
</tr>
<!-- Stalled -->
<tr>
@ -1391,7 +1449,7 @@
<tr>
<td> Reimplement kqueue using condition variables. </td>
<td> &a.jlemon; </td>
<td> &nbsp; </td>
<td> 15 March 2001 </td>
<td> &status.new; </td>
</tr>
@ -1456,15 +1514,6 @@
<td> &status.new; </td>
</tr>
<tr>
<td> Lock contention measurement tool to measure heat of various
locks, including Giant, and permit more directed performance and
locking strategy optimization. </td>
<td> &nbsp; </td>
<td> 25 February 2002 </td>
<td> &status.new; </td>
</tr>
<tr>
<td> Push the grabbing of Giant into Linux i386 ABI system calls.</td>
<td> &nbsp; </td>
@ -1544,8 +1593,8 @@
<p>以下のテーブルは、ネットワークスタックのマルチスレッド化に関するサブタスクの
TODO リストです。</p>
<table border=3>
<tr>
<table class="tasklist" cellpadding="2" cellspacing="0" border="3">
<tr class="heading">
<th> タスク </th>
<th> 担当者 </th>
<th> 最終更新 </th>
@ -1568,15 +1617,15 @@
<tr>
<td> Lock up TCP. </td>
<td> &a.jennifer;, &a.hsu; </td>
<td> 10 June 2002 </td>
<td> &a.jennifer;, &a.hsu;, &a.sam;, &a.rwatson;</td>
<td> 24 November 2004 </td>
<td> &status.done; </td>
</tr>
<tr>
<td> Lock up UDP. </td>
<td> &a.jennifer;, &a.hsu; </td>
<td> 10 June 2002 </td>
<td> &a.jennifer;, &a.hsu;, &a.rwatson; </td>
<td> 24 November 2004 </td>
<td> &status.done; </td>
</tr>
@ -1610,8 +1659,8 @@
<tr>
<td> Lock up raw IP. </td>
<td> &a.sam; </td>
<td> 4 October 2003 </td>
<td> &a.sam;, &a.rwatson; </td>
<td> 24 July 2004 </td>
<td> &status.done; </td>
</tr>
@ -1751,6 +1800,251 @@
<td> &status.done; </td>
</tr>
<tr>
<td> netatalk DDP PCB locking. </td>
<td> &a.rwatson; </td>
<td> 24 July 2004 </td>
<td> &status.done; </td>
</tr>
<tr>
<td> Permit IP forwarding path to run Giant-free. </td>
<td> &a.sam; </td>
<td> 1 December 2003 </td>
<td> &status.done; </td>
</tr>
<tr>
<td> Lock &unix; domain protocols, fifofs. </td>
<td> &a.sam;, &a.rwatson; </td>
<td> 24 July 2004 </td>
<td> &status.done; </td>
</tr>
<tr>
<td> Giant lock over NFS server to protect against so_upcall() w/o Giant </td>
<td> &a.rwatson; </td>
<td> 24 July 2004 </td>
<td> &status.done; </td>
</tr>
<tr>
<td> Lock interface cloning meta-data. </td>
<td> &a.brooks; </td>
<td> 24 July 2004 </td>
<td> &status.done; </td>
</tr>
<tr>
<td> Apply combination of socket and socket buffer locks, label caching
to MAC labels on sockets so that they can be used safely without
Giant. </td>
<td> &a.rwatson; </td>
<td> 24 July 2004 </td>
<td> &status.done; </td>
</tr>
<tr>
<td> Make routing socket message dispatch use a netisr to avoid
re-entering the socket code from the routing code, resolving lock
order issues. </td>
<td> &a.rwatson; </td>
<td> 24 July 2004 </td>
<td> &status.done; </td>
</tr>
<tr>
<td> Introduce accept locking to protect accept incomplete and
complete queues on listen sockets. </td>
<td> &a.rwatson; </td>
<td> 24 July 2004 </td>
<td> &status.done; </td>
</tr>
<tr>
<td> 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.
</td>
<td> &a.rwatson; </td>
<td> 24 July 2004 </td>
<td> &status.done; </td>
</tr>
<tr>
<td> Lock down AARP, AppleTalk Address Resoluton Protocol. </td>
<td> &a.rwatson; </td>
<td> 24 July 2004 </td>
<td> &status.done; </td>
</tr>
<tr>
<td> Fix pull/push cache data synchronization issues in sosend(),
soreceive(), allowing them to run Giant-free. </td>
<td> &a.rwatson; </td>
<td> 24 July 2004 </td>
<td> &status.done; </td>
</tr>
<tr>
<td> Protect socket global counters/limits and generation number
with a mutex. </td>
<td> &a.rwatson; </td>
<td> 24 July 2004 </td>
<td> &status.done; </td>
</tr>
<tr>
<td> Lock down unit allocation meta-data in interface related
netgraph modules. </td>
<td> &a.rwatson; </td>
<td> 24 July 2004 </td>
<td> &status.done; </td>
</tr>
<tr>
<td> Lock down socket buffer OOB fields across TCP/IP, IPX. </td>
<td> &a.rwatson; </td>
<td> 24 July 2004 </td>
<td> &status.done; </td>
</tr>
<tr>
<td> Add MSG_NBIO so that fifofs can avoid frobbing SO_NBIO in
a manner that risks races. </td>
<td> &a.truckman; </td>
<td> 24 July 2004 </td>
<td> &status.done; </td>
</tr>
<tr>
<td> Protect all use of so_count with socket lock. </td>
<td> &a.rwatson; </td>
<td> 24 July 2004 </td>
<td> &status.done; </td>
</tr>
<tr>
<td> Move socket buffer related state from so_state to sb_state so
it can be properly locked by the socket buffer mutex. </td>
<td> &a.rwatson; </td>
<td> 24 July 2004 </td>
<td> &status.done; </td>
</tr>
<tr>
<td> Introduce a temporary global lock to lock the if_label field
used by the MAC Framework. </tD>
<td> &a.rwatson; </td>
<td> 24 July 2004 </td>
<td> &status.done; </td>
</tr>
<tr>
<td> 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. </td>
<td> &a.rwatson; </td>
<td> 24 July 2004 </td>
<td> &status.done; </td>
</tr>
<tr>
<td> 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. </td>
<td> &a.rwatson; </td>
<td> 24 July 2004 </td>
<td> &status.done; </td>
</tr>
<tr>
<td> 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. </td>
<td> &a.rwatson; </td>
<td> 24 July 2004 </td>
<td> &status.done; </td>
</tr>
<tr>
<td> Port inpcb mutex locking, assertions from IPv4 to IPv6 </td>
<td> &a.rwatson; </td>
<td> 8 August 2004 </td>
<td> &status.done; </td>
</tr>
<tr>
<td> Add IFF_NEEDSGIANT to allow if_start to run with Giant for
specific interfaces. Defer if_start to task queue. </td>
<td> &a.rwatson; </td>
<td> 8 August 2004 </td>
<td> &status.done; </td>
</tr>
<tr>
<td> Push down Giant in stat(), fo_stat() to allow Giant-free stat
of pipes, sockets. </td>
<td> &a.rwatson; </td>
<td> 8 August 2004 </td>
<td> &status.done; </td>
</tr>
<tr>
<td> Add TCP lock assertions. </td>
<td> &a.rwatson; </td>
<td> 24 November 2004 </td>
<td> &status.done; </td>
</tr>
<tr>
<td> Lock socket layer. </td>
<td> &a.sam;, &a.rwatson; </td>
<td> 24 November 2004 </td>
<td> &status.done; </td>
</tr>
<tr>
<td> Review TCP timer code. </td>
<td> &a.rwatson; </td>
<td> 24 November 2004 </td>
<td> &status.done; </td>
</tr>
<tr>
<td> Analyze and reduce cost of entropy gathering in network critical
paths. </td>
<td> &a.rwatson;, &a.markm; </td>
<td> 24 November 2004 </td>
<td> &status.done; </td>
</tr>
<tr>
<td> Allow code to declare NET_NEEDS_GIANT(), forcing Giant over the
network stack if that code is compiled into the kernel. </td>
<td> &a.rwatson; </td>
<td> 28 August 2004 </td>
<td> &status.done; </td>
</tr>
<tr>
<td> Disable Giant over the network stack in the default
configuration. </td>
<td> &a.rwatson; </td>
<td> 28 August 2004 </td>
<td> &status.done; </td>
</tr>
<tr>
<td> Move to using file descriptor reference counts instead of
socket reference counts for socket system calls, avoiding extra
reference couht operations. </td>
<td> &a.rwatson; </td>
<td> 24 October 2004 </td>
<td> &status.done; </td>
</tr>
<!-- WIP -->
<tr>
@ -1763,42 +2057,7 @@
<tr>
<td> Lock IPv6. </td>
<td> &a.sam;, &a.rwatson;, &a.ume;, &a.mlaier; </td>
<td> 23 April 2004 </td>
<td> &status.wip; </td>
</tr>
<tr>
<td> Permit IP forwarding path to run Giant-free. </td>
<td> &a.sam; </td>
<td> 10 October 2003 </td>
<td> &status.wip; </td>
</tr>
<tr>
<td> Lock interface cloning meta-data. </td>
<td> &a.brooks; </td>
<td> 9 March 2004 </td>
<td> &status.wip; </td>
</tr>
<tr>
<td> Lock &unix; domain protocols, fifofs. </td>
<td> &a.hsu;, &a.sam, &a.rwatson; </td>
<td> 23 April 2004 </td>
<td> &status.wip; </td>
</tr>
<tr>
<td> Lock socket layer. </td>
<td> &a.tanimura;, &a.sam, &a.rwatson; </td>
<td> 23 April 2004 </td>
<td> &status.wip; </td>
</tr>
<tr>
<td> Giant lock over NFS server to protect against so_upcall() w/o Giant </td>
<td> &a.rwatson; </td>
<td> 23 April 2004 </td>
<td> 8 August 2004 </td>
<td> &status.wip; </td>
</tr>
@ -1809,26 +2068,17 @@
<td> &status.wip; </td>
</tr>
<tr>
<td> Apply combination of socket and socket buffer locks, label caching
to MAC labels on sockets so that they can be used safely without
Giant. </td>
<td> &a.rwatson; </td>
<td> 23 April 2004 </td>
<td> &status.wip </td>
</tr>
<tr>
<td> Lock struct ifnet. </td>
<td> &a.mlaier;, &a.luigi; Maurycy Pawlowski-Wieronski &lt;maurycy@fouk.org&gt; </td>
<td> &a.mlaier;, &a.luigi;, Maurycy Pawlowski-Wieronski &lt;maurycy@fouk.org&gt; </td>
<td> 23 April 2004 </td>
<td> &status.wip; </td>
</tr>
<tr>
<td> Lock IPv4 and IPv6 interface address lists. </td>
<td> &a.mlaier; </td>
<td> 23 April 2004 </td>
<td> Lock IPv4, IPv6, atalk interface address lists. </td>
<td> &a.mlaier;, &a.rwatson; </td>
<td> 8 August 2004 </td>
<td> &status.wip; </td>
</tr>
@ -1862,16 +2112,17 @@
</tr>
<tr>
<td> netatalk DDP PCB locking. </td>
<td> IGMP locking. </td>
<td> &a.rwatson; </td>
<td> 23 April 2004 </td>
<td> &status.wip; </td>
</tr>
<tr>
<td> IGMP locking. </td>
<td> Additional KTR tracing for UMA, callouts, interrupts, and
network path events. </td>
<td> &a.rwatson; </td>
<td> 23 April 2004 </td>
<td> 8 august 2004 </td>
<td> &status.wip; </td>
</tr>
@ -1892,13 +2143,6 @@
<td> &status.new; </td>
</tr>
<tr>
<td> Review TCP timer code. </td>
<td> &nbsp; </td>
<td> 9 March 2004 </td>
<td> &status.new; </td>
</tr>
<tr>
<td> IP ID locking. </td>
<td> &a.rwatson; </td>
@ -1911,8 +2155,8 @@
<a name="issues"></a>
<h2>既知の問題点</h2>
<table border=3>
<tr>
<table class="tasklist" cellpadding="2" cellspacing="0" border="3">
<tr class="heading">
<th> 問題点 </th>
<th> 最終更新 </th>
<th> テータス </th>
@ -2000,13 +2244,6 @@
<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>
@ -2028,6 +2265,15 @@
<li> <p> </p> </li>
</ul>
-->
<b>28 August 2004</b>
<ul>
<li>
&a.rwatson; threw the switch to change the network stack to run
without the Giant lock by default, permitting the network stack to be
run on multiple CPUs at a time, as well as to preempt and be
preempted by other code.
</li>
</ul>
<b>30 October 2003</b>
<ul>
<li>
@ -2106,16 +2352,6 @@
</li>
</ul>
<b>8 September 2000</b>
<ul>
<li>
<p>Here's a copy of an <a
href="http://people.FreeBSD.org/~jasone/smp/smp_article">article</a>
sent to <a href="http://www.bsdtoday.com/">BSDtoday</a> and linked at
<a href="http://daily.daemonnews.org/">Daemon News</a>.</p>
</li>
</ul>
<b>6 September 2000</b>
<ul>
<li>