This is to support Transparent Contiguous PTEs for User Mappings on arm64.
Barry Song (1):
mm: make folio_pte_batch available outside of mm/memory.c
Kefeng Wang (5):
mm: memory: rename page_copy_prealloc() to folio_prealloc()
mm: memory: use a folio in do_cow_fault()
mm: memory: use folio_prealloc() in wp_page_copy()
mm: memory: move mem_cgroup_charge() into alloc_anon_folio()
arm64: configs: enable ARM64_CONTPTE
Ryan Roberts (19):
mm: clarify the spec for set_ptes()
mm: thp: batch-collapse PMD with set_ptes()
mm: introduce pte_advance_pfn() and use for pte_next_pfn()
arm64/mm: convert pte_next_pfn() to pte_advance_pfn()
x86/mm: convert pte_next_pfn() to pte_advance_pfn()
mm: tidy up pte_next_pfn() definition
arm64/mm: convert READ_ONCE(*ptep) to ptep_get(ptep)
arm64/mm: convert set_pte_at() to set_ptes(..., 1)
arm64/mm: convert ptep_clear() to ptep_get_and_clear()
arm64/mm: new ptep layer to manage contig bit
arm64/mm: dplit __flush_tlb_range() to elide trailing DSB
arm64/mm: wire up PTE_CONT for user mappings
arm64/mm: implement new wrprotect_ptes() batch API
arm64/mm: implement new [get_and_]clear_full_ptes() batch APIs
mm: add pte_batch_hint() to reduce scanning in folio_pte_batch()
arm64/mm: implement pte_batch_hint()
arm64/mm: __always_inline to improve fork() perf
arm64/mm: automatically fold contpte mappings
tools/mm: add thpmaps script to dump THP usage info
arch/arm64/Kconfig | 9 +
arch/arm64/configs/openeuler_defconfig | 1 +
arch/arm64/include/asm/pgtable.h | 411 +++++++++++++--
arch/arm64/include/asm/tlbflush.h | 13 +-
arch/arm64/kernel/efi.c | 4 +-
arch/arm64/kernel/mte.c | 2 +-
arch/arm64/kvm/guest.c | 2 +-
arch/arm64/mm/Makefile | 1 +
arch/arm64/mm/contpte.c | 404 +++++++++++++++
arch/arm64/mm/fault.c | 12 +-
arch/arm64/mm/fixmap.c | 4 +-
arch/arm64/mm/hugetlbpage.c | 40 +-
arch/arm64/mm/kasan_init.c | 6 +-
arch/arm64/mm/mmu.c | 16 +-
arch/arm64/mm/pageattr.c | 6 +-
arch/arm64/mm/trans_pgd.c | 6 +-
arch/x86/include/asm/pgtable.h | 8 +-
include/linux/efi.h | 5 +
include/linux/pgtable.h | 32 +-
mm/huge_memory.c | 58 ++-
mm/internal.h | 93 ++++
mm/memory.c | 138 ++---
tools/mm/Makefile | 9 +-
tools/mm/thpmaps | 675 +++++++++++++++++++++++++
24 files changed, 1716 insertions(+), 239 deletions(-)
create mode 100644 arch/arm64/mm/contpte.c
create mode 100644 tools/mm/thpmaps
--
2.27.0