All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4 0/3] fix double page fault on arm64
@ 2019-09-18 13:19 ` Jia He
  0 siblings, 0 replies; 39+ messages in thread
From: Jia He @ 2019-09-18 13:19 UTC (permalink / raw)
  To: Catalin Marinas, Will Deacon, Mark Rutland, James Morse,
	Marc Zyngier, Matthew Wilcox, Kirill A. Shutemov,
	linux-arm-kernel, linux-kernel, linux-mm, Suzuki Poulose
  Cc: Punit Agrawal, Anshuman Khandual, Jun Yao, Alex Van Brunt,
	Robin Murphy, Thomas Gleixner, Andrew Morton,
	Jérôme Glisse, Ralph Campbell, hejianet, Kaly Xin,
	Jia He

When we tested pmdk unit test vmmalloc_fork TEST1 in arm64 guest, there
will be a double page fault in __copy_from_user_inatomic of cow_user_page.

As told by Catalin: "On arm64 without hardware Access Flag, copying from
user will fail because the pte is old and cannot be marked young. So we
always end up with zeroed page after fork() + CoW for pfn mappings. we
don't always have a hardware-managed access flag on arm64."

Changes
v4: introduce cpu_has_hw_af (Suzuki)
    bail out if !pte_same (Kirill)
v3: add vmf->ptl lock/unlock (by Kirill A. Shutemov)
    add arch_faults_on_old_pte (Matthew, Catalin)
v2: remove FAULT_FLAG_WRITE when setting pte access flag (by Catalin)

Jia He (3):
  arm64: cpufeature: introduce helper cpu_has_hw_af()
  arm64: mm: implement arch_faults_on_old_pte() on arm64
  mm: fix double page fault on arm64 if PTE_AF is cleared

 arch/arm64/include/asm/cpufeature.h |  1 +
 arch/arm64/include/asm/pgtable.h    | 12 ++++++++++
 arch/arm64/kernel/cpufeature.c      |  6 +++++
 mm/memory.c                         | 35 ++++++++++++++++++++++++-----
 4 files changed, 49 insertions(+), 5 deletions(-)

-- 
2.17.1


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

end of thread, other threads:[~2019-09-19 15:51 UTC | newest]

Thread overview: 39+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-09-18 13:19 [PATCH v4 0/3] fix double page fault on arm64 Jia He
2019-09-18 13:19 ` Jia He
2019-09-18 13:19 ` [PATCH v4 1/3] arm64: cpufeature: introduce helper cpu_has_hw_af() Jia He
2019-09-18 13:19   ` Jia He
2019-09-18 14:20   ` Matthew Wilcox
2019-09-18 14:20     ` Matthew Wilcox
2019-09-18 16:49     ` Catalin Marinas
2019-09-18 16:49       ` Catalin Marinas
2019-09-18 14:20   ` Suzuki K Poulose
2019-09-18 14:20     ` Suzuki K Poulose
2019-09-18 16:45     ` Catalin Marinas
2019-09-18 16:45       ` Catalin Marinas
2019-09-19  1:55       ` Justin He (Arm Technology China)
2019-09-19  1:55         ` Justin He (Arm Technology China)
2019-09-18 13:19 ` [PATCH v4 2/3] arm64: mm: implement arch_faults_on_old_pte() on arm64 Jia He
2019-09-18 13:19   ` Jia He
2019-09-18 13:19 ` [PATCH v4 3/3] mm: fix double page fault on arm64 if PTE_AF is cleared Jia He
2019-09-18 13:19   ` Jia He
2019-09-18 14:00   ` Kirill A. Shutemov
2019-09-18 14:00     ` Kirill A. Shutemov
2019-09-18 18:00     ` Catalin Marinas
2019-09-18 18:00       ` Catalin Marinas
2019-09-19 15:00       ` Kirill A. Shutemov
2019-09-19 15:00         ` Kirill A. Shutemov
2019-09-19 15:41         ` Catalin Marinas
2019-09-19 15:41           ` Catalin Marinas
2019-09-19 15:51           ` Kirill A. Shutemov
2019-09-19 15:51             ` Kirill A. Shutemov
2019-09-19  2:16     ` Jia He
2019-09-19  2:16       ` Jia He
2019-09-19 14:57       ` Kirill A. Shutemov
2019-09-19 14:57         ` Kirill A. Shutemov
2019-09-19 15:02         ` Justin He (Arm Technology China)
2019-09-19 15:02           ` Justin He (Arm Technology China)
2019-09-18 19:35   ` kbuild test robot
2019-09-18 19:35     ` kbuild test robot
2019-09-19  1:46     ` Justin He (Arm Technology China)
2019-09-19  1:46       ` Justin He (Arm Technology China)
2019-09-19  1:46       ` Justin He (Arm Technology China)

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.