cvs commit: src/sys/conf files src/sys/kern kern_poll.c src/sys/net netisr.c netisr.h src/sys/sys msgport.h src/sys/bus/usb usb_ethersubr.c src/sys/net/ppp if_ppp.c src/sys/netgraph/netgraph ng_base.c src/sys/netinet ip_demux.c ...
dillon at apollo.backplane.com
Sat Nov 8 00:12:18 PST 2003
Note that Jeff and I are starting to commit the network stack
threading code. There are a bunch more changes in the pipeline,
including some reworking of the code I just committed. We are
trying to avoid breaking the tree which is why this stuff is
going in incrementally. The worst that should happen is that the
network will be less efficient while the work is in progress.
Basically the goal of this work is to isolate and serialize PCBs
in specific threads in order to (A) not have to lock them and
(B) improve cache locality for ISR processing loops as well as
for data. Isolating a network PCB means dealing with the
points where the PCB talks to other parts of the system. There
are three points where this happens:
* incoming packets go through preprocessing (e.g. IP) before
being routed to the target protocol & PCB (e.g. TCP and UDP).
* user syscalls operate on PCBs
* timers and such initiate work related to particular PCBs
More information about the Commits