2003-11-24 04:50:03

by John Smith

[permalink] [raw]
Subject: PTE --> 2 values??

I saw that Linux is using a 3 level page tables, pgd, pmd and pte. The value
in the pte can refer to an actual page in memory OR an address on the swap
device. How does the kernel distinguish the two values such that if the
value is refering to an swap device address, it will not lookup the address
in memory ??


John.


2003-11-24 06:04:10

by William Lee Irwin III

[permalink] [raw]
Subject: Re: PTE --> 2 values??

On Sun, Nov 23, 2003 at 11:50:15PM -0500, John Smith wrote:
> I saw that Linux is using a 3 level page tables, pgd, pmd and pte. The value
> in the pte can refer to an actual page in memory OR an address on the swap
> device. How does the kernel distinguish the two values such that if the
> value is refering to an swap device address, it will not lookup the address
> in memory ??

There is a present bit. All other bits are available to the OS when the
present bit says "not present". On many machines, Linux' 3-level tree is
a pure software construct, and the processor is informed of translations
in other ways (e.g. inverted pagetables, direct TLB insertion).


-- wli