sosendudp: Try to optimize out the additional mbuf alloc on output path
authorSepherosa Ziehau <sephe@dragonflybsd.org>
Thu, 29 Nov 2012 05:55:02 +0000 (13:55 +0800)
committerSepherosa Ziehau <sephe@dragonflybsd.org>
Thu, 29 Nov 2012 06:41:32 +0000 (14:41 +0800)
commitf5991d1f6f129c4fbf395d86ee27f35a8ad21ba8
tree41b674ea7c5e191be1be92ee3ae55e9c064498a5
parent17f3d27a9030370ecc934704e186d57adaba60f7
sosendudp: Try to optimize out the additional mbuf alloc on output path

This optimization leaves enough space at the beginning of the mbuf, so
later on M_PREPEND() probably will not allocate addition mbuf.

This probably will not benefit any data that will be fragmented, e.g. by
IPv4, so this optimization is only performed when the size of data and
max size of protocol+link headers fit into one mbuf cluster.

This optimization could be turned off by net.inet.udp.sosend_prepend,
which is on by default.
sys/kern/uipc_socket.c
sys/netinet/udp_usrreq.c