User: Password:
Subscribe / Log in / New account

alternate 4-level page tables patches

From:  Nick Piggin <>
To:  Linux Memory Management <>, Andi Kleen <>
Subject:  [RFC][PATCH 0/10] alternate 4-level page tables patches
Date:  Sat, 18 Dec 2004 17:55:15 +1100
Cc:  Hugh Dickins <>, Linus Torvalds <>, Andrew Morton <>
Archive-link:  Article, Thread


Apologies for not making progress on this done sooner, but better late than

First off - don't let all the signed-off-by: things fool you, I'm only intending
this for comments, not merging. I just spent a bit of time getting the descriptions
in better shape.

Second - much of it is Andi's code (especially 4 level core, and x86-64 stuff).
If any attributions aren't quite accurate at this stage, don't worry too much!

Anyway, although we have a working 4-level page tables implementation, I am keeping
with this because my personal taste preference. Not that it is anything against
Andi's taste or technical implementation... but I wouldn't like progress to be held
up on account of me, so I wouldn't be too upset to forget about this until 2.7 (or
for ever)... /end disclaimer

Well, the patches follow. Tested lightly on i386 32 and 36 bits, ia64, and x86-64
with full 4 levels.



A bit of an aside: I was hoping to have a page table folding implementation that is
basically transparent to architectures. That is, a 3-level arch could just include
some generic header to fold the 4th level, and call it a day (without any other mods
to arch/?/* or include/asm-?/*).

The reality is, this isn't going to happen with our current semantics. It probably
isn't a really big deal though, because I don't expect we'd have to support a 5
level implementation any time soon. But it is something I'd like to explore further.

I'll illustrate with an example: in the current setup, if the pmd is folded into
the pgd, pgd_present is always true, and pmd_present is what actually examines the
entry in the pgd. Now clearly, the architecture has to implement pmd_present, which
is pgd_present in a 2-level setup.

I would like to change that so pgd_present really does check the actual pgd entry,
and pmd_present is unconditionally true. IMO this would work better and be less
confusing than the current setup... but that's getting off topic...

To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to  For more info on Linux MM,
see: .
Don't email: <a href=mailto:""> </a>

Copyright © 2004, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds