More updates:

- alc did the push down of Giant into readv/writev.
- Move networking stack related items out of the main list and into the
  networking list.
- Add some new entries:
  - wip for turnstiles
  - new for sleep queue abstraction
  - new for atomic_fetchadd()
  - new for a reference count API
This commit is contained in:
John Baldwin 2002-05-23 18:08:08 +00:00
parent a03f083f95
commit 49e28c41c9
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/www/; revision=13218

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.78 2002/05/05 06:30:39 alc Exp $">
<!ENTITY date "$FreeBSD: www/en/smp/index.sgml,v 1.79 2002/05/21 22:59:09 jhb Exp $">
<!ENTITY title "FreeBSD SMP Project">
<!ENTITY email 'freebsd-smp'>
<!ENTITY % includes SYSTEM "../includes.sgml"> %includes;
@ -771,6 +771,15 @@
<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>
@ -964,20 +973,6 @@
<td> &status.wip; </td>
</tr>
<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> Document existing vm_map locking and verify it's correctness. </td>
<td> &a.alc; </td>
@ -993,6 +988,14 @@
<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>
<!-- Stalled -->
<tr>
@ -1191,15 +1194,6 @@
<td> &status.new; </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> &nbsp; </td>
<td> 15 March 2002 </td>
<td> &status.new; </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
@ -1217,11 +1211,30 @@
</tr>
<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>
<td> Implement atomic_fetchadd() for int's and long's with acq and rel
versions. </td>
<td> &nbsp; </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> &nbsp; </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>
<!--
@ -1255,6 +1268,20 @@
<!-- WIP -->
<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>
<!-- Not Started -->
<tr>
@ -1263,6 +1290,14 @@
<td> 19 January 2001 </td>
<td> &status.new; </td>
</tr>
<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>
</table>
<a name="issues"></a>