On Sun, Jun 02, 2013 at 09:27:53PM -0700, Alfred Perlstein wrote:
> Hey Konstaintin, shouldn't this be scaled against the actual amount of 
> KVA we have instead of an arbitrary limit?
The commit changes the buffer cache to scale according to the available
KVA, making the scaling less dumb.

I do not understand what exactly do you want to do, please describe the
algorithm you propose to implement instead of my change.

> 
> -Alfred
> 
> On 6/2/13 9:16 PM, Konstantin Belousov wrote:
> > Author: kib
> > Date: Mon Jun  3 04:16:48 2013
> > New Revision: 251282
> > URL: http://svnweb.freebsd.org/changeset/base/251282
> >
> > Log:
> >    When auto-sizing the buffer cache, limit the amount of physical memory
> >    used as the estimation of size, to 32GB.  This provides around 100K of
> >    buffer headers and corresponding KVA for buffer map at the peak.
> >    Sizing the cache larger is not useful, also resulting in the wasting
> >    and exhausting of KVA for large machines.
> >    
> >    Reported and tested by:  bdrewery
> >    Sponsored by:    The FreeBSD Foundation
> >
> > Modified:
> >    head/sys/kern/vfs_bio.c
> >
> > Modified: head/sys/kern/vfs_bio.c
> > ==============================================================================
> > --- head/sys/kern/vfs_bio.c Mon Jun  3 04:11:42 2013        (r251281)
> > +++ head/sys/kern/vfs_bio.c Mon Jun  3 04:16:48 2013        (r251282)
> > @@ -560,7 +560,8 @@ kern_vfs_bio_buffer_alloc(caddr_t v, lon
> >                     nbuf += min((physmem_est - 4096) / factor,
> >                         65536 / factor);
> >             if (physmem_est > 65536)
> > -                   nbuf += (physmem_est - 65536) * 2 / (factor * 5);
> > +                   nbuf += min((physmem_est - 65536) * 2 / (factor * 5),
> > +                       32 * 1024 * 1024 / (factor * 5));
> >   
> >             if (maxbcache && nbuf > maxbcache / BKVASIZE)
> >                     nbuf = maxbcache / BKVASIZE;
> >

Attachment: pgp1NVdVYHi0e.pgp
Description: PGP signature

Reply via email to