Subject: Add sysctl for tcp_delayed_ack Hi everyone, this is a proposed patch for adding a sysctl for disabling TCP delayed ACK (IETF RFC 1122) without having to patch software to constantly poke sockets with TCP_QUICKACK which apparently resets on subsequent operations, see tcp(7). For my personal computer networks experimenting with globally disabling TCP delayed ACK across two other operating systems seems to have considerably improved congestion control. (While I propose only anecdotal evidence, there is more to it. Am open to the ensuing technical discussion, but only if that turns out to be a good use of other people's time.) This is my first proposed kernel patch and it is likely missing a whole bunch of details. For example: 1. Where is the TCP ACK delay computed for IPv6? Could not identify this in file net/ipv6/tcp_ipv6.c . 2. Perhaps, adding kernel configuration options for the ncurses interface is desireable. What is a good example to learn from? 3. Perhaps, setting constants in file include/uapi/linux/sysctl.h may be unnecessary, but I have not found any guidelines on when these CTL numbers are necessary. Likely, because I did not read the documentation carefully enough. Any pointers are appreciated. 4. The default should probably be a value like net.ipv4.tcp_delayed_ack=1 that preserves the current behavior and hence is backwards compatible for user space. A value of net.ipv4.tcp_delayed_ack=0 should globally (for IPv4) disable TCP delayed ACK. Would also like to add the option for IPv6, but see point (1). In case a similar sysctl has already been proposed and rejected in the past, please point me to the mailing list archives, if that is not too inconvenient. Which questions have I failed to ask that I should have asked? Errors and lack of research are on me. Thank you for sharing your time. Andrew
Attachment:
0001-Add-sysctl-net.ipv4.tcp_delayed_ack-for-disabling-TC.patch
Description: Binary data