jail is in fact not an issue due to integer reads being atomic and
the fact that any races there would exist regardless of the presence
of synchronization. Remove from the todo list.
* correct rwatson's SGML author entity so his name is
displayed correctly on the page.
* mention Rick Macklem, not only his e-mail address;
update the last-modified date to reflect this change.
* fix the task line for the TTY subsystem so it is displayed
correctly on the page and also add a `Last updated' date
to the task.
Slide jail(2) lockdown forward again, I had to clean Giant out of
crfree() after a vnode was added to struct prison.
if_tap locking is done.
if_tun locking is done.
I'm working on UNIX domain socket locking now. Also, fifofs.
AARP is done.
I'm working on IPv6 also.
ip_encap.c is locked down.
if_loop.c is locked down.
We now use m_tags to track possible looping in if_gif, not a global.
I'm also working on the socket layer.
I locked down NFS server with a Giant lock, but rick is working on
data based locking.
Maurycy and I are locking down if_ppp.
mlaier, luigi, and brooks are working on ifnet locking.
mlaier and maurycy are working on address lists.
I'm working on bsd_comp consumers.
if_stf is a work in progress.
if_sl is a work in progress.
rik is working on if_sppp.
I'm working on netatalk DDP PCB locking.
I'm working on IGMP locking.
Need to review TCP timers, not lock them.
IP ID code needs locking.
Add myself to socket system calls and structures since I seem to be working
on it a lot.
Add a high level task for KQueue, add jmg@ and green@ as owners.
Update the update date on IPv4/IPv6 since I've been working on them.
Add an IPX/SPX task, add rik@ and myself.
Add a netatalk task with me as owner.
Add myself, mlaier@, luigi@, maurycy@fouk.org, brooks@, and rik@ on the
general network stack task.
Add NFS client/server locking, with myself and
rick@snowhite.cis.uoguelph.ca as owners.
- I locked down if_disc.
- Sam and I locked down if_faith.
- I locked down if_gif at the interface layer.
- I reviewed IP tunnel ECN support, it's fine.
- Brooks is working on locking down the interface cloning code.
- I'm working on the IP-layer GIF support.
- We need to lock down the address lists.
- We need to review all compression API consumers (ppp, et al)
- We need to review the IP encapsulation library in ip_encap.c.
- We need to lock the if_ef "ethernet frame" driver.
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
is no longer a future event.
- Change the subsystem locking table to use status entities. Add status to
items having no status.
- Update a few new and WIP tasks that have been completed in the past six
months or so.
- Add an item about the p_ucred locking finally being done.
- Add a WIP item about my work in the jhb_proc branch to lock the sigacts
structure and finally get the signal handling code out from under Giant.
and IPv6. Indicate IPv4, UDP, and TCP was committed into the tree
June of last year.
Add some more completed and already committed networking items:
ifaddr ref counts, syncache, the ifnet list, radix trees, and ARP.
Add some completed, not yet committed, networking work: raw IP,
divert sockets, and Unix domain protocols.
Add some networking work in progress: routing.
Add some networking todo items: IPv6.
Add a new "Subsystems and Staffing" section to identify some of the major
subsystems, their SMPng status, and current developers working on them.
This is not intended to be a complete list, I may well have left off
several substantial sub-systems, important contributions, etc. If so,
please let me know. The goal is to identify at a higher level what is
being done, what is planned to be done, and what has been done so that
developers interested in tackling a chunk of the work larger than a
small task can do so more easily.
o Move two VFS locking cleanups/tasks into the WIP sections from the
New section, update timestamps. Jeff has been actively working on
VFS locking for a while now, and has addressed sizable chunks of
these tasks.
o Add kan as an owner on the i386 lazy context switch task.
o Add a sparc64 lazy context switch task and assign to Jake.
o Remove green from VM task, leaving just alc, update timestamp,
and mark as a WIP.
when interacting with subsystems such as VFS, Sockets, and the Network
Stack, the basic framework structures and components are MP-safe.
Update the SMP task relating to this to switch it to Done status.
scheduling) for i386" from "wip" to "suspended" for now. The truth is,
the work is sitting in my p4 branch ('interrupt') but is a little stale
and requires merging to post-KSEIII world - actually, the merging itself
is done but it needs to be unbroken.
Right now, I decided to dedicate more time to helping get -CURRENT
stabilized for 5.0 instead of adding Yet Another New Feature rush-rush
for 5.0. While lightweight interrupts are a really good thing for i386,
and I do plan to finish this after 5.0 is released, I (and others) need
to look at things realistically right now and focus more on knocking
the bugs out of what we already have (KSEIII, TrustedBSD, pmap, etc.)
in time for 5.0, as well as getting performance back to sane levels
with what we already have.
I have the code, it needs fixing but has worked before and has been
discussed at the last Devel. Summit; this is now a post-5.0 feature.