UMA MD Small Allocator Runtime Switching
Nathan Whitehorn
nwhitehorn at freebsd.org
Wed Aug 13 17:36:25 UTC 2008
John Baldwin wrote:
>
> [snipped bit about faking a direct map]
>> I thought about it, but we can only use 4K pages on the G5 so this would
>> put a large amount of pressure on the page table. IBM removed the block
>> translation mechanism from the G5 and the CPU's superpage support is not
>> available in the 32-bit compatibility mode under which we currently run.
>>
>
> Hmm, I didn't know you weren't running in full 64-bit mode. Is that a
> property of the G5 CPU that it only supports the 32-bit compat mode with
> 64-bit extensions?
>
No, it supports full 64-bit mode as well, and likes that much better. In
fact, you have to do a fair bit of work to keep it in the compatibility
mode: it switches to the full 64-bit mode whenever it takes a trap, for
instance.
The initial porting target is the compatibility mode because (a) I'm
lazy and didn't want to simultaneously do a brand new 64-bit port and
deal with changes for the G5 and (b) it would be nice to have a single
32-bit PPC install CD that works on all machines with 32-bit operating
system support. It's the trying to avoid any #ifdef G5 that creates this
problem with the UMA allocator.
I'm gotten this completely working using a bunch of dynamic switching
stuff (I can boot multiuser and build world on both my G3 and G5 machine
with the same kernel), but to do it I need to remove where it sets
booted = 1 as an optimization when the MI UMA subsystem is initializing.
-Nathan
More information about the freebsd-arch
mailing list