Skip to content

RFC alternate 4-level page tables patches

Nick Piggin linux-mm 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 RFC Latest10 patches 66 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/10alternate 4-level page tables patchesinclude/asm-generic/pgtable-nopmd.h+59 -00 replies
2/10alternate 4-level page tables patchesinclude/asm-i386/mmzone.h include/asm-i386/page.h include/asm-i386/pgalloc.h +4 more+31 -520 replies
3/10alternate 4-level page tables patchesmm/memory.c+152 -1380 replies
4/10alternate 4-level page tables patchesinclude/linux/mm.h mm/memory.c mm/mmap.c+58 -4725 replies
5/10alternate 4-level page tables patchesinclude/asm-generic/pgtable-nopmd.h include/asm-generic/pgtable-nopud.h include/asm-generic/tlb.h+91 -220 replies
6/10alternate 4-level page tables patchesdrivers/char/drm/drm_memory.h fs/exec.c include/linux/init_task.h +10 more+644 -1990 replies
7/10alternate 4-level page tables patchesarch/i386/kernel/acpi/sleep.c arch/i386/kernel/vm86.c arch/i386/mm/fault.c +8 more+81 -330 replies
8/10alternate 4-level page tables patchesarch/ia64/mm/fault.c arch/ia64/mm/hugetlbpage.c arch/ia64/mm/init.c +3 more+50 -310 replies
9/10alternate 4-level page tables patchesDocumentation/x86_64/mm.txt arch/x86_64/ia32/syscall32.c arch/x86_64/kernel/acpi/sleep.c +15 more+314 -4010 replies
10/10alternate 4-level page tables patchesmm/memory.c mm/msync.c mm/swapfile.c +1 more+15 -1514 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [RFC][PATCH 0/10] alternate 4-level page tables patches

Hi,

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

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.

Comments?

Nick

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 [email protected]. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"[email protected]"> [email protected] </a>