Thread (13 messages) 13 messages, 4 authors, 2011-06-01

Disabling nagle algorithm

From: C K Kashyap <hidden>
Date: 2011-05-30 08:07:11

Yes, TCP_NODELAY is a socket option:

Going back to the kernel source:

include/linux/tcp.h:

#define TCP_NODELAY             1       /* Turn off Nagle's algorithm. */

and this:

      u8      nonagle     : 4,/* Disable Nagle algorithm?             */

and looking into the kernel source code:

./fs/ocfs2/cluster/tcp.c:
       ret = sock->ops->setsockopt(sock, SOL_TCP, TCP_NODELAY,

./net/rds/tcp.c:
       sock->ops->setsockopt(sock, SOL_TCP, TCP_NODELAY, (char __user
*)&val,
the above are just two of the examples of how to set TCP_NODELAY in the
kernel.

At the userspace level:


http://www.linuxquestions.org/questions/other-*nix-55/how-do-i-disable-the-nagle-algorithm-in-enterprise-linux-3-kernel-ver-2-4-21-4-a-556170/

should be the correct way, except that the poster is attempting to do
it in a kernel that does not support it.

As documented in http://linux.die.net/man/7/tcp, the supported kernel
is 2.5.71 and onwards.
 Okay ... so, the situation I have at hand is that there is this app I
cannot modify. I'd like to see its performance with nagle disabled. Is this
possible?

While at it, is there a way to see the socket options of the socket
descriptors in a running app?

Regards,
Kashyap
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20110530/15b44221/attachment.html 
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help