tcp: Make setsockopt(2) TCP_{NODELAY,NOPUSH,NOOPT,FASTKEEP} asynchronous
commit680c4dd3d6a83eda7f3450b7d4d8a0da42f1dd12
authorSepherosa Ziehau <sephe@dragonflybsd.org>
Thu, 26 May 2016 13:22:58 +0000 (26 21:22 +0800)
committerSepherosa Ziehau <sephe@dragonflybsd.org>
Thu, 26 May 2016 13:22:58 +0000 (26 21:22 +0800)
treed4449eb92aca24ed9076c281af18c6998fbedbd1
parent38f755090784ab4867b7fffe9b2615a3fa3834f8
tcp: Make setsockopt(2) TCP_{NODELAY,NOPUSH,NOOPT,FASTKEEP} asynchronous

This makes all network system calls used by nginx asynchronous and greatly
improves nginx performance.

For 1 requests/connection (30K concurrent connections), this commit gives
12% improvement for 16KB web object (was 16.8Gbps, now 19.2Gbps, which
maxes out 2x10Ge).  And it gives 19% improvement for 1KB web object (was
156Kreqs/s, now 186Kreqs/s).
sys/kern/uipc_msg.c
sys/net/netmsg.h
sys/netinet/in_proto.c
sys/netinet/tcp_usrreq.c
sys/netinet/tcp_var.h
sys/sys/protosw.h