Disabling nagle algorithm

C K Kashyap ckkashyap at gmail.com
Mon May 30 04:07:11 EDT 2011


>
> 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 


More information about the Kernelnewbies mailing list