Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 20 Sep 2011 23:32:11 -0400
From:      Jason Hellenthal <jhell@DataIX.net>
To:        Lawrence Stewart <lstewart@freebsd.org>
Cc:        stable@freebsd.org
Subject:   Re: h_ertt cc_vegas loader.conf interaction on stable/8
Message-ID:  <20110921033211.GA59313@DataIX.net>
In-Reply-To: <4E794E60.6000600@freebsd.org>
References:  <20110920042748.GA2746@DataIX.net> <4E794E60.6000600@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help

Hi Larence,

On Wed, Sep 21, 2011 at 12:39:28PM +1000, Lawrence Stewart wrote:
> 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"?

Only 'newreno'

> 
> > 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.

Yes that is what I was thinking but have not had the time to
specifically track it down.

> 
>  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.

Thank you.

> 
> Cheers,
> Lawrence



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20110921033211.GA59313>