Date: Wed, 13 Aug 2008 19:36:26 +0200 From: Nathan Whitehorn <nwhitehorn@freebsd.org> To: John Baldwin <jhb@freebsd.org> Cc: freebsd-arch@freebsd.org Subject: Re: UMA MD Small Allocator Runtime Switching Message-ID: <48A31B9A.6040705@freebsd.org> In-Reply-To: <200808131214.43326.jhb@freebsd.org> References: <48981C19.8060009@freebsd.org> <200808051024.27043.jhb@freebsd.org> <48A2E62A.9060604@freebsd.org> <200808131214.43326.jhb@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?48A31B9A.6040705>