svn commit: r242847 - in head/sys: i386/include kern

Alfred Perlstein bright at mu.org
Sat Nov 10 02:56:37 UTC 2012


On 11/9/12 6:34 PM, Eitan Adler wrote:
> On 9 November 2012 21:08, Alfred Perlstein <alfred at freebsd.org> wrote:
>> Modified: head/sys/kern/subr_param.c
>> +#ifdef VM_MAX_AUTOTUNE_MAXUSERS
>> +                if (maxusers > VM_MAX_AUTOTUNE_MAXUSERS)
>> +                        maxusers = VM_MAX_AUTOTUNE_MAXUSERS;
>> +#endif
>> +                /*
>> +                 * Scales down the function in which maxusers grows once
>> +                 * we hit 384.
>> +                 */
>> +                if (maxusers > 384)
>> +                        maxusers = 384 + ((maxusers - 384) / 8);
>> +        }
> Hey,
>
> I know you didn't introduce this magic number 384. But can you (or
> someone else) explain where it came from?
>
Sure, this is magic for i386 PAE machines.  384 maxusers was pretty much 
the highest you wanted auto-tuned SAFELY for 32bit KVA on i386.

Now with 64 bit machines doing away with this hard ceiling, I wanted to 
change the slope so that it doesn't grow too much as a conservative 
measure to test the waters.

Take for example my amd64 machine with 16GB of ram.

Without the scaling factor of "maxusers = 384 + ((maxusers - 384) / 8)" 
then I get 8173 maxusers.
8173 maxusers translates to 524096 nmbclusters (1024 + 8173 * 64).
That is 2GB RAM for just nmbclusters, nevermind jumbo9 and jumbo16.

With the scaling adjustment I get 1357 maxusers which is 87872 nmbclusters.
That is 343MB.  Somewhat more reasonable.

I'm open to other suggestions and people coming in here to open the 
value up higher... however I wanted a conservative value for now to 
avoid too much concern.

We'll see where this takes us.


-Alfred


  With this patch I get 75104 nmbclusters, which is 75104 pages which is 
293 MB of ram!


More information about the svn-src-all mailing list