Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 3 Jun 1998 23:26:09 +0100 (BST)
From:      Doug Rabson <dfr@nlsystems.com>
To:        "John S. Dyson" <dyson@FreeBSD.ORG>
Cc:        mjacob@feral.com, jb@cimlogic.com.au, jbarbee@singular.com, freebsd-alpha@FreeBSD.ORG
Subject:   Re: future of slpha port
Message-ID:  <Pine.BSF.3.95q.980603232035.421F-100000@herring.nlsystems.com>
In-Reply-To: <199806032138.QAA00439@dyson.iquest.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 3 Jun 1998, John S. Dyson wrote:

> Doug Rabson said:
> > On Tue, 2 Jun 1998, Matthew Jacob wrote:
> > 
> > > Yes, I'd like to actually finally say that it's a great shame
> > > that FreeBSD and NetBSD are different efforts- the NetBSD alpha
> > > effort is in quite good shape- and I've been somewhat reluctant
> > > to try and duplicate this for FreeBSD. Is there any way the
> > > FreeBSD port can import the extremely solid NetBSD/alpha work?
> > 
> > I have drawn very heavily on NetBSD in my porting efforts so far.  Much of
> > the code in locore.s could be used unchanged or with small modifications.
> > I am using a pmap ported from FreeBSD/i386 however since I don't really
> > understand the differences in the pmap/vm interface between NetBSD and
> > FreeBSD.
> > 
> There are alot of minor differences.  The biggest ones are the temporary
> kernel mappings, and the implementation of pte preloading.  Some of
> the opts aren't very useful for TLB based machines, but some are.
> The biggest issue is whether or not you want to emulate a referenced
> bit.  If you get it working without referenced bit emulation, I can
> provide you a few minor mods to the upper level code to make the system
> work correctly (under load) without them.  After that, I'll likely
> be able to participate with you on a better implementation.

I currently emulate the reference bit in pmap itself.  I am using the same
technique (and a code fragment) that NetBSD does.  The PALcode supports
three bits in the PTE to generate MM faults on reads, writes and executes
of the page.  These are separate from the normal kernel/user read/write
access bits.  The MM fault then records the reference in the pv_head and
clears the bits in all the relavent PTEs.

> 
> (I know that the Alpha PALcode provides a page table interface, I
>  forget if they provide a reference bit emulation.)
> 
> To help, soon, I can probably look at the NetBSD/Alpha pmap code, and
> see how compatible they are with our pmap interface.  We really do
> not have to support all entry points, and some that we do support
> aren't really needed for functionality.  (I'll print out a copy for
> offline reference right away, and look at it.)
> 
> After looking at the NetBSD Alpha/pmap code, I'll be able to be more
> coherent in my comments.

My own port of your i386 pmap appears to be functional and I will probably
commit that in the few days.  The only advantage which NetBSD/alpha's pmap
has over mine is the support for Address Space Numbers.  The alpha can tag
each TLB with an ASN to allow two address spaces to have cached mappings
for the same virtual address as long as they use different ASNs.  I will
add ASN support as soon as the dust settles from the initial bootstrap.

--
Doug Rabson				Mail:  dfr@nlsystems.com
Nonlinear Systems Ltd.			Phone: +44 181 951 1891
					Fax:   +44 181 381 1039


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-alpha" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.3.95q.980603232035.421F-100000>