tcp_delack_strategy patch for 2.4 kernels

Josip Loncaric josip at
Mon Nov 25 14:44:36 PST 2002

My TCP patches for 2.2 kernels are NOT needed under 2.4 kernels, at
least not in point-to-point communication.

However, anecdotal evidence suggests that the improved TCP stack in
Linux 2.4 may have a problem with many-to-many communication patterns
even though each point-to-point link performs fine. Tests to check this
are difficult to concoct, so perhaps it is best that people who suspect
they may have this problem conduct their own tests.  Therefore, I'm
making available the tcp_delack_strategy patch for the most recent Red
Hat kernel 2.4.18-18.8.0 (see attachment).

To install the patch, you need a clean Linux kernel which matches the
patch version.  The following instructions assume that the patch has
been downloaded to the /tmp directory:

(1) cd /usr/src/linux-2.4
    where /usr/src/linux-2.4 points to your kernel build tree

(2) patch -p1 </tmp/tcp-patch-for-2.4.18-18.8.0

(3) verify that the patch was applied correctly

(4) configure and build the new kernel

(5) install the new kernel and setup boot loader (lilo, grub)

(6) add the following to your /etc/rc.d/rc.local script:

# The recommended strategy is '3'
# Your network may need a different strategy (experiment!)
# Possible values range from '0' (no delayed ACKs) to 
# '10' (normal delayed ACK handling: the default value).
if [ -f /proc/sys/net/ipv4/tcp_delack_strategy ]; then
    echo 3 >/proc/sys/net/ipv4/tcp_delack_strategy

(7) Re-check your work, then reboot with the new kernel

After reboot, file /proc/sys/net/ipv4/tcp_delack_strategy should exist
and have the values you specified in your rc.local script.  All TCP
sockets which turn on the TCP_NODELAY socket option (e.g. MPI sockets)
will activate the patch, while all other connections should remain
unaffected.  Please note that after each reboot the default value
tcp_delack_strategy=10 turns off the patch completely, so the patch will
not be active unless the tcp_delack_strategy value is changed. 


P.S.  My TCP patches for 2.2 kernels are still available at until Dec. 31, 2002 at
the latest. ICASE will be "integrated" into NIA in January of 2003, and
our domain name will change.

P.P.S. "md5sum -b tcp-patch-for-2.4.18-18.8.0" should produce:

ddf5569db6d4d60ea5ad443d2b74daed *tcp-patch-for-2.4.18-18.8.0

Dr. Josip Loncaric, Research Fellow               mailto:josip at
ICASE, Mail Stop 132C           PGP key at
NASA Langley Research Center             mailto:j.loncaric at
Hampton, VA 23681-2199, USA    Tel. +1 757 864-2192  Fax +1 757 864-6134
-------------- next part --------------
A non-text attachment was scrubbed...
Name: tcp-patch-for-2.4.18-18.8.0
Type: text/x-patch
Size: 3733 bytes
Desc: not available
URL: <>

More information about the Beowulf mailing list