Date: 28 Feb 2002 17:40:30 +1200 From: Benno Rice <benno@FreeBSD.org> To: luoqi@FreeBSD.org Cc: freebsd-ppc@freebsd.org Subject: Re: cvs commit: src/sys/powerpc/powerpc pmap.c Message-ID: <1014874831.1310.3.camel@ratchet.jeamland.net> In-Reply-To: <200202280528.g1S5SeI00984@freefall.freebsd.org> References: <200202280528.g1S5SeI00984@freefall.freebsd.org>
index | next in thread | previous in thread | raw e-mail
[-- Attachment #1 --] On Thu, 2002-02-28 at 17:28, luoqi@FreeBSD.org wrote: > It was a fine idea to have a merged pv_entry and overflow structure, > and use the pv table kind of as the complete page table, and the hash > table its cache. I would guess this is probably where the speed-up > comes from. I'd guess that's the case too. > But to traverse the linked pvo list in real mode (spill handler) > means the link pointers have to be a physical address. In the new > NetBSD code, this is done by allocating the pvo structures from > below 256M, which is mapped by BAT entry PA==VA. We also have this mapping. > In FreeBSD, the zone allocator won't do this job, first, you are > not guaranteed to get page below 256M, second, kva returned from > zalloc does not necessarily equal to pa (you don't really need the > kva). You'll have to write you own allocator. The tricky part is > how to allocate page below 256M. We could probably do something > similar to contigmalloc(), but my impression is this call could > be quite expensive. Especially so if we adopt a merged pvo struct, > because pv_entry allocation is much more frequent than overflow. Yeah, I was kind of avoiding thinking about this for the moment. =) Hopefully Jeff's UMA stuff should help, as I believe that it allows you to specify allocation routines which will allow this to work. > Maybe we could find a middle ground somewhere. For example, use > a separate overflow structure allocated from low memory when there > is a collision, but also keep a copy of pte data in pv_entry as well. Hrm. I think I'd rather wait until Jeff's UMA goes in and reassess then. At the moment I'm running on a simulator configured to use 32MB of RAM so the BAT mapping will work. > PS: sorry about a previous incomplete message, i was having some > trouble with our email server. That's cool. =) -- Benno Rice benno@FreeBSD.org [-- Attachment #2 --] -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.6 (FreeBSD) Comment: For info see http://www.gnupg.org iEYEABECAAYFAjx9ws4ACgkQXjRwWofFmQmRmACfR44VgZapkfv3XMRDw3AX5G0k EM4Ani8/pVPIY25jQ50MvDtDrcOcXB/c =NHVT -----END PGP SIGNATURE-----help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1014874831.1310.3.camel>
