Hi Michael, hi Andrew Le 09/03/2022 à 18:44, Christophe Leroy a écrit : > Rebased on top of powerpc/next branch > > This series converts powerpc to default topdown mmap layout. > > powerpc requires its own arch_get_unmapped_area() only when > slices are needed, which is only for book3s/64. First part of > the series moves slices into book3s/64 specific directories > and cleans up other subarchitectures. > > Last part converts to default topdown mmap layout. > > A small modification is done to core mm to allow > powerpc to still provide its own arch_randomize_brk() > > Another modification is done to core mm to allow powerpc > to use generic versions of get_unmapped_area functions for Radix > while still providing its own implementation for Hash, the > selection between Radix and Hash being doing at runtime. > > Last modification to core mm is to give len and flags to > arch_get_mmap_end(). > > Signed-off-by: Christophe Leroy <christophe.leroy@xxxxxxxxxx> What's the way forward for this series ? Patches 1 has been merged in PCI tree. Patches 2 to 5 are core mm, patch 5 being a fix. Then patches 6 to 14 are powerpc. What will be the merge strategy ? I guess it's a bit late to get it through powerpc tree, so I was just wondering whether we could get patches 2 to 5 in mm this cycle, and the powerpc ones next cycle ? Thanks Christophe > > Changes in v8: > - Moved patch "sizes.h: Add SZ_1T macro" up from which is already in linux-next but not in Linus tree yet. > - Rebased on today's powerpc/next > > Changes in v7: > - Taken into account comments from Catalin (patches 3 and 4) > > Changes in v6: > - New patch (patch 4) to take arch_get_mmap_base() and arch_get_mmap_end() into account in generic hugetlb_get_unmapped_area() > - Get back arch_randomize_brk() simplification as it relies on default topdown mmap layout. > - Fixed precedence between || and && in powerpc's arch_get_mmap_end() (patch 9) > > Changes in v5: > - Added patch 3 > - Added arch_get_mmap_base() and arch_get_mmap_end() to patch 7 to better match original powerpc behaviour > - Switched patched 10 and 11 and performed full randomisation in patch 10 just before switching to default implementation, as suggested by Nic. > > Changes in v4: > - Move arch_randomize_brk() simplification out of this series > - Add a change to core mm to enable using generic implementation > while providing arch specific one at the same time. > - Reworked radix get_unmapped_area to use generic implementation > - Rebase on top of Nic's series v6 > > Changes in v3: > - Fixed missing <linux/elf-randomize.h> in last patch > - Added a patch to move SZ_1T out of drivers/pci/controller/pci-xgene.c > > Changes in v2: > - Moved patch 4 before patch 2 > - Make generic arch_randomize_brk() __weak > - Added patch 9 > > Christophe Leroy (14): > sizes.h: Add SZ_1T macro > mm: Allow arch specific arch_randomize_brk() with > CONFIG_ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT > mm, hugetlbfs: Allow an arch to always use generic versions of > get_unmapped_area functions > mm: Add len and flags parameters to arch_get_mmap_end() > mm, hugetlbfs: Allow for "high" userspace addresses > powerpc/mm: Move vma_mmu_pagesize() > powerpc/mm: Make slice specific to book3s/64 > powerpc/mm: Remove CONFIG_PPC_MM_SLICES > powerpc/mm: Use generic_get_unmapped_area() and call it from > arch_get_unmapped_area() > powerpc/mm: Use generic_hugetlb_get_unmapped_area() > powerpc/mm: Move get_unmapped_area functions to slice.c > powerpc/mm: Enable full randomisation of memory mappings > powerpc/mm: Convert to default topdown mmap layout > powerpc: Simplify and move arch_randomize_brk() > > arch/arm64/include/asm/processor.h | 4 +- > arch/powerpc/Kconfig | 2 +- > arch/powerpc/include/asm/book3s/64/hugetlb.h | 4 - > arch/powerpc/include/asm/book3s/64/mmu-hash.h | 1 + > arch/powerpc/include/asm/book3s/64/mmu.h | 6 - > arch/powerpc/include/asm/book3s/64/slice.h | 24 ++ > arch/powerpc/include/asm/hugetlb.h | 2 +- > arch/powerpc/include/asm/paca.h | 7 - > arch/powerpc/include/asm/page.h | 1 - > arch/powerpc/include/asm/processor.h | 2 - > arch/powerpc/include/asm/slice.h | 46 ---- > arch/powerpc/include/asm/task_size_64.h | 8 + > arch/powerpc/kernel/paca.c | 5 - > arch/powerpc/kernel/process.c | 41 --- > arch/powerpc/mm/Makefile | 3 +- > arch/powerpc/mm/book3s64/Makefile | 2 +- > arch/powerpc/mm/book3s64/hash_utils.c | 33 ++- > arch/powerpc/mm/book3s64/radix_hugetlbpage.c | 55 ---- > arch/powerpc/mm/{ => book3s64}/slice.c | 71 ++++- > arch/powerpc/mm/hugetlbpage.c | 34 --- > arch/powerpc/mm/mmap.c | 256 ------------------ > arch/powerpc/mm/nohash/mmu_context.c | 9 - > arch/powerpc/mm/nohash/tlb.c | 4 - > arch/powerpc/platforms/Kconfig.cputype | 4 - > drivers/pci/controller/pci-xgene.c | 1 - > fs/hugetlbfs/inode.c | 26 +- > include/linux/hugetlb.h | 5 + > include/linux/sched/mm.h | 17 ++ > include/linux/sizes.h | 2 + > mm/mmap.c | 43 +-- > mm/util.c | 2 +- > 31 files changed, 185 insertions(+), 535 deletions(-) > delete mode 100644 arch/powerpc/include/asm/slice.h > rename arch/powerpc/mm/{ => book3s64}/slice.c (91%) > delete mode 100644 arch/powerpc/mm/mmap.c >