linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/3] A Solution to Re-enable hugetlb vmemmap optimize
@ 2023-12-20  5:18 Nanyong Sun
  2023-12-20  5:18 ` [PATCH v2 1/3] mm: HVO: introduce helper function to update and flush pgtable Nanyong Sun
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Nanyong Sun @ 2023-12-20  5:18 UTC (permalink / raw)
  To: catalin.marinas, will, mike.kravetz, muchun.song, akpm,
	anshuman.khandual
  Cc: willy, wangkefeng.wang, sunnanyong, linux-arm-kernel,
	linux-kernel, linux-mm

HVO was previously disabled on arm64 [1] due to the lack of necessary
BBM(break-before-make) logic when changing page tables.
This set of patches fix this by adding necessary BBM sequence when
changing page table, and supporting vmemmap page fault handling to
fixup kernel address fault if vmemmap is concurrently accessed.

I have tested this patch set with concurrently accessing the vmemmap
address when do BBM and can recover by vmemmap fault handler. Also
tested under the config of 2/3/4 pgtable levels with 4K/64K page size
and all works well.

V2:
This version mainly changes some naming, and uses more appropriate helper
functions to make the code more clean, according to review comments from
Muchun Song and Kefeng Wang.

[1] commit 060a2c92d1b6 ("arm64: mm: hugetlb: Disable HUGETLB_PAGE_OPTIMIZE_VMEMMAP")

Nanyong Sun (3):
  mm: HVO: introduce helper function to update and flush pgtable
  arm64: mm: HVO: support BBM of vmemmap pgtable safely
  arm64: mm: Re-enable OPTIMIZE_HUGETLB_VMEMMAP

 arch/arm64/Kconfig           |  1 +
 arch/arm64/include/asm/esr.h |  4 ++
 arch/arm64/include/asm/mmu.h | 20 +++++++++
 arch/arm64/mm/fault.c        | 78 ++++++++++++++++++++++++++++++++++--
 arch/arm64/mm/mmu.c          | 28 +++++++++++++
 mm/hugetlb_vmemmap.c         | 55 +++++++++++++++++++------
 6 files changed, 171 insertions(+), 15 deletions(-)

-- 
2.25.1



^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2023-12-20 13:38 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-12-20  5:18 [PATCH v2 0/3] A Solution to Re-enable hugetlb vmemmap optimize Nanyong Sun
2023-12-20  5:18 ` [PATCH v2 1/3] mm: HVO: introduce helper function to update and flush pgtable Nanyong Sun
2023-12-20  5:18 ` [PATCH v2 2/3] arm64: mm: HVO: support BBM of vmemmap pgtable safely Nanyong Sun
2023-12-20  6:32   ` Muchun Song
2023-12-20 13:37     ` Nanyong Sun
2023-12-20  5:18 ` [PATCH v2 3/3] arm64: mm: Re-enable OPTIMIZE_HUGETLB_VMEMMAP Nanyong Sun

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox