(DONE - rwatson) Add inpcb reference counting so that the pcbinfo lock in tcp_input can be dropped, allowing greater concurrency.
(DONE - rwatson) Migrate TCP to using read locking where possible (and especially for tcbinfo).
(DONE - kmacy) if_start needs to become if_startmbuf so that device drivers can either use central queue routines, or use their own queues (such as multi-queue for some ethernet devices, ppp, etc, or no queue for layering such as if_vlan). This will require adding a queue/priority field to the mbuf header, and updating current consumers of multiple queues between link and driver code, such as if_sl, 802.11, etc. Note: this is now named if_transmit.
(DONE - rwatson, csjp) Implement and merge zero-copy BPF buffers.
(DONE - rwatson) Remove NET_NEEDS_GIANT.
(Done - rwatson) Remove netatm from build due to not being MPSAFE.
(DONE - rwatson) Enable parallel UDP input processing up to socket layer through use of reading locking.
(DONE - rwatson) Create and use datagram-specific soreceive and sosend routines for UDP avoiding overhead.
(DONE - rwatson) Enable parallel UDP transmit on the same socket from multiple threads down to the ifq layer through use of read locking.
(DONE - rwatson) Convert incpb and inpcbinfo mutexes to rwlocks.
(DONE - ups) The mbuma mbuf allocator fails to drain the mbuf+cluster cache back into component caches when resource limits are approached.
(DONE) Revisit UNIX domain socket fine-grained locking in rwatson_proto and decide what to do about it. Proper micro-benchmarking.
(DONE) sosend/soreceive/sopoll cleanup – all consumers call sosend/soreceive, and protocols use sosend_generic/soreceive_generic/sopoll_generic (renamed current ones) – sosend/soreceive/sopoll become simply pru_sosend/pru_soreceive/pru_sopoll wrappers.
(DONE) Move socket buffer utility routines from uipc_socket2.c to uipc_sockbuf.c via repo-copy.
(DONE) socket(9) man page for kernel socket APIs.
(DONE) Trim aging mbuf.h types.
(DONE) Create sbdestroy() with a simplified and cleaned up set of socket buffer cleanups, avoiding calls to locking and sorflush().
(DONE) Review and clean up sorflush(). Investigate reducing overhead, as this is invoked by a number of apps when they shutdown() a socket for read.
(DONE) Review Intel TCP offload patches.
(DONE - bms) SO_NOSIGPIPE appears to be broken again.
(DONE) Move socket buffer functions to uipc_sockbuf.c from uipc_socket2.c, and other functions to uipc_socket.c.
(DONE) Fix sb_lock() per Isilon bug report, MFC to 6.x.
(DONE - bz) Remove i4b as non-MPSAFE
(DONE - maxim) Remove bg_h4 as non-MPSAFE