Turns off the direct ACK on every other segment
authorjan <jan@openbsd.org>
Wed, 3 Feb 2021 13:40:06 +0000 (13:40 +0000)
committerjan <jan@openbsd.org>
Wed, 3 Feb 2021 13:40:06 +0000 (13:40 +0000)
commit326d9b4f201826071598f241480ee426cbabc4d1
treeedf353ee4c0d24fbeb052c14c95354ae4f5f153b
parent05b039f4dc11d7662dcf95ccc48b62a2745a5111
Turns off the direct ACK on every other segment

The kernel uses a huge amount of processing time for sending ACKs to the sender
on the receiving interface.  After receiving a data segment, we send out two
ACKs.  The first one in tcp_input() direct after receiving.  The second ACK is
send out, after the userland or the sosplice task read some data out of the
socket buffer.  Thus, we save some processing time and improve network
performance.

Longer tested by sthen@
OK claudio@
sys/netinet/tcp_input.c