git: pru_send: Allow non-NULL address parameter to be passed

看板DFBSD_commit作者時間14年前 (2011/12/28 02:04), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
commit 7b7dc575a8224f533cec23b942a0aef41b88835c Author: Sepherosa Ziehau <sephe@dragonflybsd.org> Date: Sun Dec 4 21:21:51 2011 +0800 pru_send: Allow non-NULL address parameter to be passed Currently the passed in address is copied into a newly allocated memory (grr, additional blocking kmalloc), and the PRUS_FREEADDR will be set so that protocol thread could know when to free the address. Before this change netperf UDP_STREAM (unconnected socket) could only do ~200Kpps (w/ -m 18), now it could do ~990Kpps (w/ -m 18). This gives ~500% performance improvement for tiny UDP packet TX. The improvement is not as good as the connected socket, which is ~600%, mainly because of the additional memory allocation for the address. We _may_ further optimize out the address allocation. Summary of changes: sys/kern/uipc_msg.c | 12 ++++++++++-- sys/kern/uipc_socket.c | 7 +------ sys/net/netmsg.h | 1 + sys/netinet/tcp_usrreq.c | 5 +++-- sys/netinet/udp_usrreq.c | 5 ++++- 5 files changed, 19 insertions(+), 11 deletions(-) http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/7b7dc575a8224f533cec23b942a0aef41b88835c -- DragonFly BSD source repository
文章代碼(AID): #1E-WYxLc (DFBSD_commit)