From owner-freebsd-net@FreeBSD.ORG Tue Mar 4 21:10:29 2014 Return-Path: Delivered-To: net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 09B79B13; Tue, 4 Mar 2014 21:10:29 +0000 (UTC) Received: from mail-pa0-x236.google.com (mail-pa0-x236.google.com [IPv6:2607:f8b0:400e:c03::236]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id C40F3AF6; Tue, 4 Mar 2014 21:10:28 +0000 (UTC) Received: by mail-pa0-f54.google.com with SMTP id lf10so84468pab.41 for ; Tue, 04 Mar 2014 13:10:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=message-id:date:from:reply-to:user-agent:mime-version:to:cc:subject :references:in-reply-to:content-type:content-transfer-encoding; bh=d23FWxEB8F5/W5fl8oasK7J8CMnjaFJstuhveUxqKS0=; b=B8pgNyXg65axwSqpUlkz7iyz3Sw9IkET8PhUlkitdSwf6CUeAT4QLso5jdGazNxiPE QLnk7gv24xaxY3KPjH/oVyvgF/ClMV1guo7xI++gso0O9mB5YweKIBdz8Xqn16mV175P Lfbbpcq7bF0AaljoJbwYB2UVPLC2bp/fdBw99ia+XSQ+gCwK7Y+eyuZIX8ZN3+6YEIYb d+Pq8rC64wFlhtuSTcmdtgk0xIR2rI1XsJ8mC+agEVpRTRw8NXJlMMaqGDeg4zUwDVgJ 83PGPPTCLY99F6VL0kE91DmEVvUTw0lvYbb8ZA1xWOPH7N3k5V/aAdgmxWQA2DLYxIBn eUKw== X-Received: by 10.66.243.131 with SMTP id wy3mr2187042pac.32.1393967428424; Tue, 04 Mar 2014 13:10:28 -0800 (PST) Received: from [192.168.1.7] (ppp59-167-128-11.static.internode.on.net. [59.167.128.11]) by mx.google.com with ESMTPSA id my6sm231177pbc.36.2014.03.04.13.10.25 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 04 Mar 2014 13:10:27 -0800 (PST) Message-ID: <5316413D.7050000@FreeBSD.org> Date: Wed, 05 Mar 2014 08:10:21 +1100 From: Kubilay Kocak User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Thunderbird/27.0 MIME-Version: 1.0 To: hiren panchasara , Lawrence Stewart Subject: Re: TCP Initial Window 10 MFC References: <201307051458.r65EwObo066269@svn.freebsd.org> <520AED2F.4050001@freebsd.org> <520BB3F0.4020506@freebsd.org> <520C4F03.9040601@freebsd.org> In-Reply-To: X-Enigmail-Version: 1.6 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: Andre Oppermann , "freebsd-net@freebsd.org" X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list Reply-To: koobs@FreeBSD.org List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Mar 2014 21:10:29 -0000 On 5/03/2014 6:39 AM, hiren panchasara wrote: > On Wed, Aug 14, 2013 at 8:46 PM, Lawrence Stewart wrote: >> On 08/15/13 02:44, Andre Oppermann wrote: >>> On 14.08.2013 04:36, Lawrence Stewart wrote: >>>> Hi Andre, >>>> >>>> [RE team is BCCed so they're aware of this discussion] >>>> >>>> On 07/06/13 00:58, Andre Oppermann wrote: >>>>> Author: andre >>>>> Date: Fri Jul 5 14:58:24 2013 >>>>> New Revision: 252789 >>>>> URL: http://svnweb.freebsd.org/changeset/base/252789 >>>>> >>>>> Log: >>>>> MFC r242266: >>>>> >>>>> Increase the initial CWND to 10 segments as defined in IETF TCPM >>>>> draft-ietf-tcpm-initcwnd-05. It explains why the increased initial >>>>> window improves the overall performance of many web services without >>>>> risking congestion collapse. >>>>> >>>>> As long as it remains a draft it is placed under a sysctl marking it >>>>> as experimental: >>>>> net.inet.tcp.experimental.initcwnd10 = 1 >>>>> When it becomes an official RFC soon the sysctl will be changed to >>>>> the RFC number and moved to net.inet.tcp. >>>>> >>>>> This implementation differs from the RFC draft in that it is a bit >>>>> more conservative in the case of packet loss on SYN or SYN|ACK >>>>> because >>>>> we haven't reduced the default RTO to 1 second yet. Also the >>>>> restart >>>>> window isn't yet increased as allowed. Both will be adjusted with >>>>> upcoming changes. >>>>> >>>>> Is is enabled by default. In Linux it is enabled since kernel 3.0. >>>> >>>> I haven't been fully alert to FreeBSD happenings this year so apologies >>>> for bringing this up so long after the MFC. >>>> >>>> I don't think this change should have been MFCed, at least not in its >>>> current form. Enabling the switch to IW=10 on a stable branch is >>>> inappropriate IMO. I also think the "net.inet.tcp.experimental" sysctl >>>> branch is poorly named as per the important discussion we had back in >>>> February [1]. I would really prefer we didn't get stuck having to keep >>>> it around by making a stable release with it being present. >>>> >>>> I think this commit should be backed out of stable/9 and more >>>> importantly, 9.2-RELEASE. >>> >>> Backing out the patch isn't really necessary, just flip the switch to >>> off having it revert to the RFC5681 defaults. Those who want it anyway >>> can simply enable it again. >> >> That doesn't address the sysctl tree naming concern or mechanism issue - >> please refer back to the Feb discussion; specifically the proposal to >> rename the experimental branch to "net.inet.tcp.nonstandard" and add an >> "allowed" leaf which takes a list of non-standard behaviours to allow >> tweaking in the stack. >> >> Leaving the sysctl branch named "experimental" conveys that the things >> which live under the branch are being evaluated in some way for becoming >> a default, which is very different to "nonstandard" which conveys that >> the user is twiddling things in a way which normally shouldn't be. IW=10 >> may become a FreeBSD default at some point, but the mechanism for >> enabling it should be to specify the initial window as a value in >> segments, and as such by allowing any non-standard value (IW=7, IW=50), >> I strongly argue in favour for changing the branch name from >> "experimental" to "nonstandard". >> >> In order to continue this discussion in the context of what we started >> in Feb, I still request that this change be backed out of releng/9.2 so >> that 9.2-RELEASE doesn't ship with it. We can continue discussion for >> it's future in stable/9 and head after the backout so that 9.2 isn't >> held up. >> >>> IW10 has become RFC6928 (experimental) in April 2013. >> >> Great for the draft authors, but irrelevant for this discussion. >> >>>> As an aside, I am intending to follow up to the Feb discussion with a >>>> patch that implements the basic infrastructure I proposed so that we can >>>> continue that discussion. >>> >>> Again I'm deeply concerned and opposed to giving end users direct control >>> over the IW value. I've had and seen too many cases of totally bogus >>> "tuning" >>> by cranking up random sysctls to insane values and then complaining about >>> FreeBSD being slow compared to Linux (and then ditching FreeBSD). >> >> Sorry, but referring to unspecified cases of stupidity resulting in loss >> of unquantified numbers of users as a reason against providing a >> controlled mechanism to change a default system parameter in a >> potentially harmful way is not a rational argument. > > I do not subscribe to the idea of "Let's not make life of 98% of users > better because 2% may do something stupid". > > I am revisiting this thread because at $work, we need to tweak > initcwnd (other than 10) to see how it behaves but there is no easy > way to tune it. (or am I missing something?) > > Can we please make initcwnd a sysctl tunable? > > cheers, > Hiren +1 - We'd like to at least be able to measure the difference and impact of different values @ work, with the choice to make informed configuration decisions too.