r343567 aka PAE vs non-PAE merge breaks i386 freebsd

Warner Losh imp at bsdimp.com
Sat Feb 23 19:04:11 UTC 2019


On Sat, Feb 23, 2019 at 10:57 AM Steve Kargl <
sgk at troutmask.apl.washington.edu> wrote:

> Supposely, the laptop only has 4 GB of memory.  Not sure how
> it finds memory above 4 GB.
>

Some older chipsets had a 'hole' in memory that they mapped the PCI bus
into and then remapped RAM in that range up above the 4GB boundary. That's
how it can find memory above 4GB when you have only 4GB of RAM. I hit it
with the PC Card stuff I did back in the day since it broke certain
heuristics I had in the code that turned out to be unwise for many reasons
(not just this one). I don't recall all the details, since it's been so
long ago.

So I think kib@ is right when he highlights
> +0x0000000100000000 - 0x000000011ffe7fff, 536772608 bytes (131048 pages)

as the memory, since this is indeed above the 4GB limit.  It's about 128k
of 4k pages (just shy of the 131072 I'd expect), which is a surprisingly
round number. Also one that's easy to implement in hardware. So it
certainly "smells" the same...

That's why I agree with others that hw.above4g_allow=0 is worth a shot, for
at least diagnostic purposes. This memory wasn't used before and if it's
used now by the drm drivers, and those aren't PAE safe (meaning they cope
with allocations beyond 4GB), then that's quite useful to know. Or maybe
it's a different driver hating things and stomping on video memory due to
wrap around.

Warner


More information about the freebsd-current mailing list