cvs commit: src/sys/kern uipc_socket.c src/sys/netinet
udp_usrreq.c src/sys/netinet6 udp6_usrreq.c src/sys/sys socketvar.h
Robert Watson
rwatson at FreeBSD.org
Mon Sep 15 20:47:41 UTC 2008
rwatson 2008-09-15 20:46:32 UTC
FreeBSD src repository
Modified files: (Branch: RELENG_7)
sys/kern uipc_socket.c
sys/netinet udp_usrreq.c
sys/netinet6 udp6_usrreq.c
sys/sys socketvar.h
Log:
SVN rev 183051 on 2008-09-15 20:46:32Z by rwatson
Merge r180198, r180211, r180365, r182682 from head to stable/7:
Add soreceive_dgram(9), an optimized socket receive function for use by
datagram-only protocols, such as UDP. This version removes use of
sblock(), which is not required due to an inability to interlace data
improperly with datagrams, as well as avoiding some of the larger loops
and state management that don't apply on datagram sockets.
This is experimental code, so hook it up only for UDPv4 for testing; if
there are problems we may need to revise it or turn it off by default,
but it offers *significant* performance improvements for threaded UDP
applications such as BIND9, nsd, and memcached using UDP.
Tested by: kris, ps
Update copyright date in light of soreceive_dgram(9).
Use soreceive_dgram() and sosend_dgram() with UDPv6, as we do with UDPv4.
Tested by: ps
Remove XXXRW in soreceive_dgram that proves unnecessary.
Remove unused orig_resid variable in soreceive_dgram.
Submitted by: alfred
Note: in the MFC, we do enable sosend_dgram for UDPv6 by default (it was
already used for UDPv4), but use of soreceive_dgram for both UDPv4 and
UDPv6 is controlled by a new loader tunable,
net.inet.udp.soreceive_dgram_enabled as soreceive_dgram has less testing
exposure than sosend_dgram. We may wish to change the default (and
eliminate the tunable) in 7.2.
MFC requested by: gnn, kris, ps
Approved by: re (kib)
Revision Changes Path
1.302.2.6 +230 -1 src/sys/kern/uipc_socket.c
1.218.2.5 +14 -0 src/sys/netinet/udp_usrreq.c
1.81.2.7 +1 -0 src/sys/netinet6/udp6_usrreq.c
1.158.2.5 +3 -0 src/sys/sys/socketvar.h
More information about the cvs-src
mailing list