Messages in this thread Patch in this message | | | Date | Thu, 23 Mar 2006 11:04:41 +0200 | From | Dan Aloni <> | Subject | Re: [TCP]: rcvbuf lock when tcp_moderate_rcvbuf enabled |
| |
Hello,
Below, I've forwarded change from 2.6.16 which I think may causes problems for applications that use setsockopt with SO_RCVBUF. We are using an implementation of an iSCSI target and according to network sniffs it seems that during data transfer the receive window unjustifyingly shrinks to a very low size (180 bytes). I can guess that the code below indirectly affects the receive window size, but I'm not sure how it the logic works here, a clarification could be helpful.
It's worth to mention that we have sysctl_tcp_moderate_rcvbuf=1, but I don't think it should interfere with applications that request to have a fixed receive buffer by the means of setsockopt(). I can also tell by experiment that reverting the change below makes the problem go away.
--- a97ed5416c28ee14ecab0ac4483c079a0c3e4c1d +++ e9a54ae7d6903845598db14a8e1cba54026faf1b @@ -456,7 +456,8 @@ void tcp_rcv_space_adjust(struct sock *s tp->rcvq_space.space = space; - if (sysctl_tcp_moderate_rcvbuf) { + if (sysctl_tcp_moderate_rcvbuf && + !(sk->sk_userlocks & SOCK_RCVBUF_LOCK)) { int new_clamp = space; /* Receive space grows, normalize in order to -- Dan Aloni da-x@monatomic.org, da-x@colinux.org, da-x@gmx.net, dan@xiv.co.il - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |