Skip to content

s390 page tables on steroids ..

Martin Schwidefsky linux-arch linux-mm linux-s390 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest6 patches 11 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/6add mm argument to pte/pmd/pud/pgd_free.arch/arm/kernel/smp.c arch/arm/mm/ioremap.c arch/arm/mm/pgd.c +41 more+152 -1520 replies
2/6CONFIG_HIGHPTE vs. sub-page page tables.arch/frv/mm/pgalloc.c arch/powerpc/mm/pgtable_32.c arch/ppc/mm/pgtable.c +52 more+339 -1375 replies
3/6arch_update_pgd callmm/mmap.c+5 -16 replies
4/6s390: 1K/2K page table pages.arch/s390/mm/pgtable.c arch/s390/mm/vmem.c include/asm-s390/elf.h +7 more+197 -1810 replies
5/6s390: Add four level page tables for CONFIG_64BIT=y.arch/s390/mm/init.c arch/s390/mm/vmem.c include/asm-s390/a.out.h +6 more+122 -480 replies
6/6s390: dynamic page tables.arch/s390/kernel/traps.c arch/s390/mm/fault.c arch/s390/mm/init.c +9 more+181 -240 replies

Reviews trailers per patch

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

Read the v1 thread

Cover letter [patch 0/6] s390 page tables on steroids ..

Greetings,
this patch series of six patches contains three mm related changes for the s390 architecture:
i) 1K/2K page tables. With this patch set the cheating with the pmd_t on s390 stops. So far a pmd contained 2/4 pointers instead of just one which would be correct from an architectural stand point. The Trouble with this is that it requires two common code changes to make sub-page page tables possible. This features is an important requirement for the kvm support on s390.
ii) Support for 4 levels of page tables. The address space limit for
64 bit processes is now 2^53. That should be enough for anyone ?
iii) Support for different number of page table levels. The limit
of 2^53 is nice but it slows down the tlb lookup that now has to walk 4 instead of 3 levels. Patch #5 make the number of page table levels dependent on the highest address a process is using. If an mmap is done that raises the limit to the next level, the page table gets another level. A downgrade is only done at process start, so that 31 bit processes get a two level page table. A normal 64 bit process starts with three levels.

The first three patches in the series contain the common code changes that are needed to get all of this done. I did my best to find all the place in the different architectures that need to be updated after the common code changed. Please let me know if you find a place I missed.

The patches are against Linus's git tree.

Signature · 4 lines
blue skies,
   Martin.

"Reality continues to ruin my life." - Calvin.