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>