Date: Sat, 08 Feb 2003 23:46:04 -0800 From: Peter Wemm <peter@wemm.org> To: Jake Burkholder <jake@locore.ca> Cc: Alfred Perlstein <bright@mu.org>, Jeff Roberson <jroberson@chesapeake.net>, arch@FreeBSD.ORG Subject: Re: New kernel allocation API Message-ID: <20030209074604.EC6962A8B4@canning.wemm.org> In-Reply-To: <20030207234049.A32864@locore.ca>
next in thread | previous in thread | raw e-mail | index | archive | help
Jake Burkholder wrote: > Apparently, On Fri, Feb 07, 2003 at 08:16:59PM -0800, > Alfred Perlstein said words to the effect of; > > > * Jeff Roberson <jroberson@chesapeake.net> [030207 19:17] wrote: > > > > > > > > > On Fri, 7 Feb 2003, Alfred Perlstein wrote: > > > > > > > *snip* > > > > > > > > It seems that you've missed reading the original allocator or something , > > > > there's a cheap way to do this that doesn't require too much overhead. > > > > > > It seems that you've missed reading my email. > > > > > > "The old code used a large fixed size array that represented all of > > > kmem_map. This no longer works because the allocator can return pages > > > that are outside of kmem map. It does this on alpha, ia64, and sparc64 t o > > > use direct mapped regions of address space for kernel memory." > > > > > > > Yes there is a space tradeoff, but it avoids this pmap_kextract > > > > nonsense and multiple pointer dereferences. > > > > > > It's not so much nonsense as it is a solution. > > > > Doh, I guess I should be paying more attention, sorry for that. > > > > What advantage do you get from using direct mapped pages? Why not > > alias/map them into kmem map? I know you'd pay a penalty for the > > vm overhead, but you'd gain back the fixed array trick. I'm probably > > missing something? > > It lets you use the largest page size supported by the tlb (256 megs for > ia64 (!)), and it doesn't take a tlb shootdown to add or remove a mapping > because they never change. And there is hardware support for direct mapping on alpha as well, so it completely bypasses the TLB entirely for significant benefits. For x86-64 there'll likely be up to 2^39 of direct mapped space as well, but using 2MB pages (use an entire level 4 directory slot for direct mapping to avoid the APTD evilness). We just dont have the space to do this on plain x86 :-(. Cheers, -Peter -- Peter Wemm - peter@wemm.org; peter@FreeBSD.org; peter@yahoo-inc.com "All of this is for nothing if we don't go to the stars" - JMS/B5 To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030209074604.EC6962A8B4>