Subject: Re: savecore_flags="-z"
To: Andrew Brown <atatat@atatdot.net>
From: Jason Thorpe <thorpej@nas.nasa.gov>
List: tech-kern
Date: 12/02/1999 13:30:30
On Thu, 2 Dec 1999 16:24:58 -0500 
 Andrew Brown <atatat@atatdot.net> wrote:

 > this i still don't get, unfortunately most of the experience i have on
 > paging is "book lernin'"...not much in the way of practical
 > experience.  if i split a faulted memory access into (according to my
 > (probably failing) memory) a page table number, a page number, and an
 > offset within that page...how can i recombine those numbers in some
 > way (through lookups or what-not) to come up with a number that's
 > *greater* than 32 bits?  or do we cheat and use bits from the pid or
 > something...?

On the x86, when you do a lookup in protected mode, the CPU take the
address, compares it to the PTE for that address, finds the physical
address, adds the page offset, and then does the actual access (ok, so
this is a little simplified, but you get the idea).

The processor-internal register which holds the page address might be
larger than 32 bits.

This isn nothing new; look at SPARC Sun4c systems, which are
32-virtual/36-physical address space systems.

        -- Jason R. Thorpe <thorpej@nas.nasa.gov>