[PATCH 0/5] VA allocator fixes
Nicholas Piggin
npiggin at gmail.com
Mon Nov 6 21:03:10 AEDT 2017
Florian found a nasty corner case with the VA allocation logic
for crossing from 128TB to 512TB limit on hash, and made a
really superb report of the problem -- traces, reproducer recipes,
analysis, etc. which already mostly solved it.
The first patch in the series should solve Florian's particular
case, the next 3 are other issues with addr_limit. The last
patch is technically a cleanup but I think it's fairly important
in terms of understanding the code and also enabling some BUG
checks (when addr_limit == 0).
I have not tested these exactly on Florian's test case, but
some tests of my own behave better afterwards. Hopefully he has
time to re-test. Some careful review would be welcome too.
Thanks,
Nick
Nicholas Piggin (5):
powerpc/64s/hash: Fix 128TB-512TB virtual address boundary case
allocation
powerpc/64s/hash: Allow MAP_FIXED allocations to cross 128TB boundary
powerpc/64s/hash: Fix fork() with 512TB process address space
powerpc/64s/radix: Fix 128TB-512TB virtual address boundary case
allocation
powerpc/64s: mm_context.addr_limit is only used on hash
arch/powerpc/include/asm/book3s/64/mmu-hash.h | 2 +-
arch/powerpc/include/asm/book3s/64/mmu.h | 2 +-
arch/powerpc/include/asm/paca.h | 2 +-
arch/powerpc/kernel/asm-offsets.c | 2 +-
arch/powerpc/kernel/paca.c | 4 ++--
arch/powerpc/kernel/setup-common.c | 3 ++-
arch/powerpc/mm/hugetlbpage-radix.c | 14 +++++-------
arch/powerpc/mm/mmap.c | 31 ++++++++++----------------
arch/powerpc/mm/mmu_context_book3s64.c | 8 +++----
arch/powerpc/mm/slb_low.S | 2 +-
arch/powerpc/mm/slice.c | 32 ++++++++++++++-------------
11 files changed, 48 insertions(+), 54 deletions(-)
--
2.15.0
More information about the Linuxppc-dev
mailing list