mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Dan Aloni <da-x@monatomic.org>
To: Linux Kernel List <linux-kernel@vger.kernel.org>
Cc: John Heffner <jheffner@psc.edu>,
	"David S. Miller" <davem@davemloft.net>,
	dror@xiv.co.il
Subject: Re: [TCP]: rcvbuf lock when tcp_moderate_rcvbuf enabled
Date: Thu, 23 Mar 2006 11:04:41 +0200	[thread overview]
Message-ID: <20060323090441.GA8502@localdomain> (raw)

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

             reply	other threads:[~2006-03-23  9:03 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-03-23  9:04 Dan Aloni [this message]
2006-03-23 15:58 ` John Heffner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20060323090441.GA8502@localdomain \
    --to=da-x@monatomic.org \
    --cc=davem@davemloft.net \
    --cc=dror@xiv.co.il \
    --cc=jheffner@psc.edu \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome