A variety of updates to the SMP status page:

Reference BSDCon'03 papers:
  Jeffrey Hsu's "Reasoning about SMP in FreeBSD"
  Jeff Roberson's "ULE: A Modern Scheduler for FreeBSD"

Update WIP timestamps due to ongoing progress:
  Newbus
  VM
  Buffer Cache
  VFS
  Socket locking
  IPv4, IPv6
  Network stack infrastructure
  UNIX domain sockets
  Socket infrastructure

Move to done status:
  Pipe IPC (VM optimizations now done)
  Mutex profiling
  Pipe VM optimizations
  Raw IP
  DIVERT sockets
  IPFW2
  DUMMYNET
  Ethernet bridge
  IP fragment queues
  Routing entries
  FAST_IPSEC

Add new WIP:
  Peter's device driver API changes for fast interrupt handling
This commit is contained in:
Robert Watson 2003-10-04 16:19:43 +00:00
parent 6e52ce9878
commit 702cb89e40
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/www/; revision=18325

View file

@ -1,6 +1,6 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" [
<!ENTITY base CDATA "..">
<!ENTITY date "$FreeBSD: www/en/smp/index.sgml,v 1.109 2003/07/16 20:12:26 truckman Exp $">
<!ENTITY date "$FreeBSD: www/en/smp/index.sgml,v 1.110 2003/10/02 19:59:04 ceri Exp $">
<!ENTITY title "FreeBSD SMP Project">
<!ENTITY email 'freebsd-smp'>
<!ENTITY % includes SYSTEM "../includes.sgml"> %includes;
@ -112,9 +112,26 @@
<a href="http://apollo.backplane.com/FreeBSDSmp/">web page</a>
that documents the work he is doing on the SMP project.</p></li>
<li><p>
<li>
<p>
<a href="http://www.usenix.org/events/bsdcon02/full_papers/baldwin/baldwin_html/index.html">
"Locking in the Multithreaded FreeBSD Kernel" USENIX paper by &a.jhb;</a>.</p></li>
"Locking in the Multithreaded FreeBSD Kernel" USENIX paper by &a.jhb;</a>.
</p>
</li>
<li>
<p>
<a href="http://www.usenix.org/publications/library/proceedings/bsdcon03/tech/hsu.html">
"Reasoning about SMP in FreeBSD" BSDCon'03 paper by &a.hsu;</a>.
</p>
</li>
<li>
<p>
<a href="http://www.usenix.org/publications/library/proceedings/bsdcon03/tech/roberson.html">
"ULE: A Modern Scheduler for FreeBSD" BSDCon'03 paper by &a.jeff;</a>.
</p>
</li>
</ul>
<a name="subsystems"></a>
@ -134,28 +151,28 @@
<tr>
<td> Newbus </td>
<td> &status.wip; </td>
<td> 5 July 2003 </td>
<td> 5 October 2003 </td>
<td> &a.imp;</td>
</tr>
<tr>
<td> VM </td>
<td> &status.wip; </td>
<td> 5 February 2003 </td>
<td> 4 October 2003 </td>
<td> &a.alc;</td>
</tr>
<tr>
<td> Buffer cache </td>
<td> &status.wip; </td>
<td> 8 February 2003 </td>
<td> 4 October 2003 </td>
<td> &a.jeff;, &a.phk; </td>
</tr>
<tr>
<td> VFS </td>
<td> &status.wip; </td>
<td> </td>
<td> 4 October 2003</td>
<td> &a.jeff; </td>
</tr>
@ -196,30 +213,30 @@
<tr>
<td> Pipe IPC </td>
<td> &status.done; (except for VM optimizations) </td>
<td> 5 February 2003 </td>
<td> &status.done; </td>
<td> 4 October 2003 </td>
<td> &a.alfred; </td>
</tr>
<tr>
<td> Socket structures and system calls </td>
<td> &status.wip; </td>
<td> </td>
<td> &a.tanimura;, &a.hsu; </td>
<td> 4 October 2003 </td>
<td> &a.tanimura;, &a.hsu;, &a.sam; </td>
</tr>
<tr>
<td> IPv4, IPv6 </td>
<td> &status.wip; </td>
<td> 5 February 2003 </td>
<td> &a.hsu;, &a.jennifer; </td>
<td> 4 October 2003 </td>
<td> &a.hsu;, &a.jennifer;, &a.sam;</td>
</tr>
<tr>
<td> Network stack infrastructure </td>
<td> &status.wip; </td>
<td> 5 February 2003 </td>
<td> &a.hsu; </td>
<td> 4 October 2003 </td>
<td> &a.hsu;, &a.sam; </td>
</tr>
</table>
@ -1065,6 +1082,21 @@
<td> &status.done; </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.done; </td>
</tr>
<tr>
<td> Lock pipe implementation: VM optimizations. </td>
<td> &nbsp; </td>
<td> 4 October 2003 </td>
<td> &status.done; </td>
</tr>
<!-- WIP -->
<tr>
@ -1152,14 +1184,6 @@
<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 sysctl hierarchy and access methods. </td>
<td> &a.mini; </td>
@ -1246,6 +1270,16 @@
<td> &status.wip; </td>
</tr>
<tr>
<td> Modify device driver API to permit drivers to more easily
split "in interrupt context" and "in interrupt thread"
code so as to acknowledge interrupts faster. This will permit
lower latency in interrupt handling. </td>
<td> &a.peter; </td>
<td> 4 October 2003 </td>
<td> &status.wip; </td>
</tr>
<!-- Stalled -->
<tr>
@ -1392,13 +1426,6 @@
<td> &status.new; </td>
</tr>
<tr>
<td> Lock pipe implementation: VM optimizations. </td>
<td> &nbsp; </td>
<td> 27 February 2002 </td>
<td> &status.new; </td>
</tr>
<tr>
<td> Expand mutex profiling tool to also profile sx locks. </td>
<td> &a.eivind;, &a.des; </td>
@ -1537,43 +1564,94 @@
<td> &status.done; </td>
</tr>
<!-- WIP -->
<tr>
<td> Lock routing entries. </td>
<td> &nbsp; </td>
<td> 29 January 2003 </td>
<td> &status.wip; </td>
</tr>
<tr>
<td> Lock up raw IP. </td>
<td> &a.hsu; </td>
<td> 27 February 2003 </td>
<td> &status.wip; </td>
<td> &a.sam; </td>
<td> 4 October 2003 </td>
<td> &status.done; </td>
</tr>
<tr>
<td> Lock divert sockets. </td>
<td> &a.hsu; </td>
<td> 27 February 2003 </td>
<td> &a.sam; </td>
<td> 4 October 2003 </td>
<td> &status.done; </td>
</tr>
<tr>
<td> Lock ipfw2. </td>
<td> &a.sam; </td>
<td> 4 October 2003 </td>
<td> &status.done; </td>
</tr>
<tr>
<td> Lock DUMMYNET. </td>
<td> &a.sam; </td>
<td> 4 October 2003 </td>
<td> &status.done; </td>
</tr>
<tr>
<td> Lock ethernet bridge. </td>
<td> &a.sam; </td>
<td> 4 October 2003 </td>
<td> &status.done; </td>
</tr>
<tr>
<td> Lock IP fragment queues. </td>
<td> &a.rwatson; </td>
<td> 4 October 2003 </td>
<td> &status.done; </td>
</tr>
<tr>
<td> Lock routing entries. </td>
<td> &a.sam; </td>
<td> 4 October 2003 </td>
<td> &status.done; </td>
</tr>
<tr>
<td> Lock FAST_IPSEC. </td>
<td> &a.sam; </td>
<td> 4 October 2003 </td>
<td> &status.done; </td>
</tr>
<!-- WIP -->
<tr>
<td> Lock &unix; domain protocols. </td>
<td> &a.hsu;, &a.sam </td>
<td> 4 October 2003 </td>
<td> &status.wip; </td>
</tr>
<tr>
<td> Lock up &unix; domain protocols. </td>
<td> &a.hsu; </td>
<td> 27 February 2003 </td>
<td> Lock IPv6. </td>
<td> &a.sam; </td>
<td> 4 October 2003 </td>
<td> &status.wip; </td>
</tr>
<tr>
<td> Lock up IPv6. </td>
<td> &nbsp; </td>
<td> 27 February 2003 </td>
<td> Lock socket layer. </td>
<td> &a.tanimura;, &a.sam </td>
<td> 4 October 2003 </td>
<td> &status.wip; </td>
</tr>
<tr>
<td> Permit IP forwarding path to run Giant-free. </td>
<td> &a.sam; </td>
<td> 4 October 2003 </td>
<td> &status.wip; </td>
</tr>
<!-- Not Started -->
<tr>
<td> Lock struct ifnet. </td>
<td> &nbsp; </td>
@ -1581,15 +1659,6 @@
<td> &status.new; </td>
</tr>
<tr>
<td> Lock down struct socket. </td>
<td> &a.tanimura; </td>
<td> 21 April 2002 </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>