Date: Thu, 25 May 2000 03:03:19 -0700 From: Peter Wemm <peter@netplex.com.au> To: Doug Rabson <dfr@nlsystems.com> Cc: Matthew Dillon <dillon@apollo.backplane.com>, Martin Cracauer <cracauer@cons.org>, cvs-committers@freebsd.org, cvs-all@freebsd.org Subject: Re: cvs commit: src/sys/i386/i386 mem.c Message-ID: <20000525100319.2ABD61CE1@overcee.netplex.com.au> In-Reply-To: Message from Doug Rabson <dfr@nlsystems.com> of "Thu, 25 May 2000 09:22:51 BST." <Pine.BSF.4.21.0005250921180.73457-100000@salmon.nlsystems.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Doug Rabson wrote:
> On Wed, 24 May 2000, Matthew Dillon wrote:
>
> >
> > :> pmap_enter() masked off the page offset bits, pmap_kenter() did not.
> > :> This (I believe) is the cause of the XFree86 startup and/or mptable(8)
> > :> panics when programs were reading from /dev/mem at non-page-aligned
> > :> offsets. The offsets were being converted into random page flags in t
he
> > :> page tables. :-( (including PG_PS = 4MB page size)
> > :
> > :Fixed it for me.
> > :
> > :Thanks!
> > : Martin
> >
> > As a side note, the problem is one of design. The original design, tha
t
> > is. The pmap code has traditionally treated physical addresses and
> > page table entry fields interchangeably which means that it is very eas
y
> > to make a coding mistake when cleaning things up... and to miss the
> > mistake when reviewing :-)
>
> This also made it more difficult than it should have been to port the i386
> pmap to alpha which represents its ptes quite differently. Just getting
> rid of all the places it used 'unsigned' to hold a pte value was painful.
And I'll add that this use of unsigned all over pmap is also a major cause
of nightmares for PAE (36 bit addressing) support. There are other problems
but the assumtions that pte's are integers is a messy one in PAE mode.
Cheers,
-Peter
--
Peter Wemm - peter@FreeBSD.org; peter@yahoo-inc.com; peter@netplex.com.au
"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 cvs-all" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20000525100319.2ABD61CE1>
