Skip site navigation (1)Skip section navigation (2)
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>