From owner-freebsd-stable@FreeBSD.ORG Wed Sep 21 02:58:29 2011 Return-Path: Delivered-To: stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A680F106564A for ; Wed, 21 Sep 2011 02:58:29 +0000 (UTC) (envelope-from lstewart@freebsd.org) Received: from lauren.room52.net (lauren.room52.net [210.50.193.198]) by mx1.freebsd.org (Postfix) with ESMTP id 69D328FC08 for ; Wed, 21 Sep 2011 02:58:29 +0000 (UTC) Received: from lstewart1.loshell.room52.net (ppp59-167-184-191.static.internode.on.net [59.167.184.191]) by lauren.room52.net (Postfix) with ESMTPSA id 4CF577E824; Wed, 21 Sep 2011 12:39:29 +1000 (EST) Message-ID: <4E794E60.6000600@freebsd.org> Date: Wed, 21 Sep 2011 12:39:28 +1000 From: Lawrence Stewart User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:6.0.2) Gecko/20110914 Thunderbird/6.0.2 MIME-Version: 1.0 To: Jason Hellenthal References: <20110920042748.GA2746@DataIX.net> In-Reply-To: <20110920042748.GA2746@DataIX.net> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=0.0 required=5.0 tests=UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on lauren.room52.net Cc: stable@freebsd.org Subject: Re: h_ertt cc_vegas loader.conf interaction on stable/8 X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 Sep 2011 02:58:29 -0000 Hi Jason, On 09/20/11 14:27, Jason Hellenthal wrote: > > On stable/8 as of the date of this message when attempting the following > configuration the sysctl MIB net.inet.tcp.cc.algorithm is not available > for /etc/sysctl.conf to tune for whatever reason. > > /boot/loader.conf: > h_ertt_load="YES" > cc_vegas_load="YES" > > /etc/sysctl.conf: > net.inet.tcp.cc.algorithm=vegas > > > After boot the system still has the congestion algo set to 'newreno' Does "sysctl net.inet.tcp.cc.available" after boot show only 'newreno' in the list? Or is 'vegas' listed as well after 'newreno', even though 'newreno' is listed by "sysctl net.inet.tcp.cc.algorithm"? > To get around this I had to load the above two modules at rc.local stage > of the boot and also tune the sysctl via this method. > > > Has anyone else seen this behavior with other congestion algo's ? > > Can any developer advise what is controlling this ? hmm this smells like a bug in the ordering of module registration vs framework init, as I certainly intended that the code work in the way you tried to set it up. From sys/netinet/cc/cc_module.h, you can see that CC modules attach at SI_SUB_PROTO_IFATTACHDOMAIN stage with order SI_ORDER_ANY. From sys/netinet/cc/cc.c, "SYSINIT(cc, SI_SUB_PROTO_IFATTACHDOMAIN, SI_ORDER_FIRST, cc_init, NULL);", so the framework is supposed to initialise at the same kernel boot stage as algorithm modules, but before any modules do. I don't see any obvious problems with the current code, but will try reproduce here and follow up with my results. Cheers, Lawrence