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 ...

Matthew Dillon dillon at
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 mailing list