svn commit: r251282 - head/sys/kern
Alfred Perlstein
bright at mu.org
Mon Jun 3 09:24:31 UTC 2013
On 6/3/13 12:55 AM, Konstantin Belousov wrote:
> 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.
Sure, how about deriving the hardcoded "32" from the maxkva a machine
can have?
Is that possible?
-Alfred
>
>> -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;
>>>
More information about the svn-src-all
mailing list