On Dec 14, 2014, at 10:12 AM, Ian Lepore wrote:
> On Sun, 2014-12-14 at 10:09 -0800, Alfred Perlstein wrote:
>> On Dec 14, 2014, at 9:47 AM, Ian Lepore wrote:
>>
>>> This is an out of the blue FYI post to let people know that despite
all
>>> the misinformation you'll run across if you search for
information on
>>> FreeBSD PAE support, it (still) works just fine. I've been
using it
>>> (for reasons related to our build system and products at $work)
since
>>> 2006, and I can say unequivocally that it works fine on 6.x, 8.x,
and
>>> now 10.x (and presumably on the odd-numbered releases too but
I've never
>>> tried those).
>>>
>>> In my most recent testing with 10-stable, I found it was compatible
with
>>> drm2 and radeonkms drivers and I was able to run Xorg and gnome
just
>>> fine. All my devices, and apps, and even the linuxulator worked
just
>>> fine.
>>>
>>> One thing that changed somewhere between 8.4 and 10.1 is that I had
to
>>> add a kernel tuning option to my kernel config:
>>>
>>> option KVA_PAGES=768 # Default is 512
>>>
>>> I suspect that the most frequent use of PAE is on laptops that have
4gb
>>> and the default tuning is adequate for that. My desktop machine
has
>>> 12gb and I needed to bump up that value to avoid errors related to
being
>>> unable to create new kernel stacks.
>>>
>>
>> There already is a #define that is bifurcated based on PAE in pmap.h:
>>
>> #ifndef KVA_PAGES
>> #ifdef PAE
>> #define KVA_PAGES 512
>> #else
>> #define KVA_PAGES 256
>> #endif
>> #endif
>>
>> Do you think it will harm things to apply your suggested default to
this file?
>>
>
> I would have to defer to someone who actually understands just what that
> parm is tuning. It was purely speculation on my part that the current
> default is adequate for less memory than I have, and I don't know what
> that downside might be for setting it too high.
>
KVA pages is the amount of pages reserved for kernel address space:
* Size of Kernel address space. This is the number of page table pages
* (4MB each) to use for the kernel. 256 pages == 1 Gigabyte.
* This **MUST** be a multiple of 4 (eg: 252, 256, 260, etc).
* For PAE, the page table page unit size is 2MB. This means that 512 pages
* is 1 Gigabyte. Double everything. It must be a multiple of 8 for PAE.
It appears that our default for PAE leaves 1GB for kernel address to play with?
That's an interesting default. Wonder if it really makes sense for PAE
since the assumption is that you'll have >4GB ram in the box, wiring down
1.5GB for kernel would seem to make sense? Probably make sense to ask Peter or
Alan on this.
Also wondering how bad it would be to make these tunables, I see they trickle
down quite a bit into the system, hopefully not defining some static arrays, but
I haven't dived down that far.
Ian, just to understand better, how much memory is in your machine?
-Alfred