From owner-svn-src-head@FreeBSD.ORG Wed Jun 8 20:46:17 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DE71F106566B; Wed, 8 Jun 2011 20:46:16 +0000 (UTC) (envelope-from to.my.trociny@gmail.com) Received: from mail-fx0-f54.google.com (mail-fx0-f54.google.com [209.85.161.54]) by mx1.freebsd.org (Postfix) with ESMTP id 617158FC15; Wed, 8 Jun 2011 20:46:14 +0000 (UTC) Received: by fxm11 with SMTP id 11so873533fxm.13 for ; Wed, 08 Jun 2011 13:46:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:from:to:cc:subject:references:x-comment-to :sender:date:in-reply-to:message-id:user-agent:mime-version :content-type; bh=+W/waNc4e5ZigtzzTGqy2XjcSZCtdCWDP+iqhfvZvhI=; b=alANlN9ZdAHpInRtb7LMksIeHAON9CFFnV7eYYoxDbwHqMdi5TKO8CUIcywuY+UNq9 a/gZX1x1ybEH9Un/DVYUGP6CUx5bqVxAuz6JsAg7UO5XJe3NAFvHM9jN+Qqteu77t4nt VFTMekOio8gBn6p6CfBCFDliWTp4B9cygx1rg= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:to:cc:subject:references:x-comment-to:sender:date:in-reply-to :message-id:user-agent:mime-version:content-type; b=NZw4U4eXuehtCAMzhrRPMIcgINW70C372WKNUvHoe7DZlMhe2hWtjD/SxJX8DhOY0P 9Q5UAdr2lHEJ1CZp53xjVUzDHgJY9VByoVrbjoiRyrfG0qGgQX00ngmM3Pvg5U2rKhn9 Jc4+Umwiozhj1qBQTRLGUka8zeFMUCazckcZA= Received: by 10.223.102.131 with SMTP id g3mr714430fao.68.1307565974111; Wed, 08 Jun 2011 13:46:14 -0700 (PDT) Received: from localhost ([95.69.172.154]) by mx.google.com with ESMTPS id g7sm377752fac.15.2011.06.08.13.46.08 (version=TLSv1/SSLv3 cipher=OTHER); Wed, 08 Jun 2011 13:46:09 -0700 (PDT) From: Mikolaj Golub To: John Baldwin References: <201105022105.p42L5q3j054498@svn.freebsd.org> <4DCE93BF.7000803@FreeBSD.org> <86boz5fby1.fsf@kopusha.home.net> <201106030944.36200.jhb@freebsd.org> X-Comment-To: John Baldwin Sender: Mikolaj Golub Date: Wed, 08 Jun 2011 23:46:06 +0300 In-Reply-To: <201106030944.36200.jhb@freebsd.org> (John Baldwin's message of "Fri, 3 Jun 2011 09:44:36 -0400") Message-ID: <86tyc0xd9t.fsf@kopusha.home.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.2 (berkeley-unix) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Mike Silbersack , src-committers@freebsd.org, svn-src-all@freebsd.org, Bjoern Zeeb , svn-src-head@freebsd.org, Lawrence Stewart Subject: Re: svn commit: r221346 - head/sys/netinet X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jun 2011 20:46:17 -0000 On Fri, 3 Jun 2011 09:44:36 -0400 John Baldwin wrote: JB> Please try this change. What is happening is that you have a remaining JB> window that is smaller than the window scale. You are receiving zero JB> window updates that are received ok (becuase the socket buffer isn't JB> completely empty), and that advance rcv_nxt. However, tcp_output() is JB> not advancing rcv_adv because 'recwin' is calculated as zero. My JB> invariants had assumed that the ACK that gets forced out for a reply JB> to a zero window probe would move rcv_adv, but that isn't happening. JB> This patch will allow rcv_adv to advance when a zero window probe is JB> ACK'd. I'm not sure if this is the best way to fix this, but I think JB> it will fix it: JB> Index: tcp_output.c JB> =================================================================== JB> --- tcp_output.c (revision 222565) JB> +++ tcp_output.c (working copy) JB> @@ -1331,7 +1331,7 @@ out: JB> * then remember the size of the advertised window. JB> * Any pending ACK has now been sent. JB> */ JB> - if (recwin > 0 && SEQ_GT(tp->rcv_nxt + recwin, tp->rcv_adv)) JB> + if (recwin >= 0 && SEQ_GT(tp->rcv_nxt + recwin, tp->rcv_adv)) JB> tp->rcv_adv = tp->rcv_nxt + recwin; JB> tp->last_ack_sent = tp->rcv_nxt; JB> tp->t_flags &= ~(TF_ACKNOW | TF_DELACK); Sorry for the delay -- I was offline :-). Thanks, with the patch I can't reproduce the issue. I am going to run additional tests in the coming days and will inform you if I find something suspicious. -- Mikolaj Golub