Robert Watson rwatson at FreeBSD.org
Wed Mar 29 17:54:50 UTC 2006

On Wed, 29 Mar 2006, Dag-Erling Smørgrav wrote:

> "Conrad J. Sabatier" <conrads at cox.net> writes:
>> Chris <chrcoluk at gmail.com> wrote:
>>> so [kern.ipc.nmbclusters] has no affect, has this become a read only
>>> tunable again only settable in loader.conf?
>> To the best of my knowledge, this has *always* been a loader tunable,
>> not configurable on-the-fly.
> kern.ipc.nmbclusters is normally computed at boot time.  A compile- time 
> option to override it was introduced in 2.0-CURRENT.  At that time, it was 
> defined in param.c.  A read-only sysctl was introduced in 3.0-CURRENT.  It 
> moved from param.c to uipc_mbuf.c in 4.0-CURRENT, then to subr_mbuf.c when 
> mballoc was introduced in 5.0-CURRENT; became a tunable at some point after 
> that; then moved again to kern_mbuf.c when mballoc was replaced with mbuma 
> in 6.0-CURRENT.  That is the point where it became read-write, for no good 
> reason that I can see; setting it at runtime has no effect, because the size 
> of the mbuf zone is determined at boot time.  Perhaps Bosko (who wrote both 
> mballoc and mbuma, IIRC) knows.

Paul Saab from Yahoo! has a set of patches that allow run-time nmbclusters 
changes to be implemented -- while it won't cause the freeing of clusters 
referenced, it goes through and recalculates dependent variables, propagates 
them into UMA, etc.  I believe they're running with this patch on 6.x, and I 
expect that they will be merged to -CURRENT and -STABLE in the relatively near 
future.  Not before 6.1, however.

If the nmbclusters setting really has no effect right now, we should mark the 
sysctl as read-only to make it more clear it doesn't, since allowing it to be 
set without taking effect is counter-intuitive.

Robert N M Watson

More information about the freebsd-stable mailing list