[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20210120173612.20913-1-will@kernel.org>
Date: Wed, 20 Jan 2021 17:36:04 +0000
From: Will Deacon <will@...nel.org>
To: linux-kernel@...r.kernel.org
Cc: linux-mm@...ck.org, linux-arm-kernel@...ts.infradead.org,
Will Deacon <will@...nel.org>,
Catalin Marinas <catalin.marinas@....com>,
Jan Kara <jack@...e.cz>, Minchan Kim <minchan@...nel.org>,
Andrew Morton <akpm@...ux-foundation.org>,
"Kirill A . Shutemov" <kirill.shutemov@...ux.intel.com>,
Linus Torvalds <torvalds@...ux-foundation.org>,
Vinayak Menon <vinmenon@...eaurora.org>,
Hugh Dickins <hughd@...gle.com>,
Nick Desaulniers <ndesaulniers@...gle.com>,
kernel-team@...roid.com
Subject: [PATCH v4 0/8] Create 'old' ptes for faultaround mappings on arm64 with hardware access flag
Hi all,
This is version four of the patches I previously posted here:
v1: https://lore.kernel.org/r/20201209163950.8494-1-will@kernel.org
v2: https://lore.kernel.org/r/20210108171517.5290-1-will@kernel.org
v3: https://lore.kernel.org/r/20210114175934.13070-1-will@kernel.org
The patches allow architectures to opt-in at runtime for faultaround
mappings to be created as 'old' instead of 'young'. Although there have
been previous attempts at this, they failed either because the decision
was deferred to userspace [1] or because it was done unconditionally and
shown to regress benchmarks for particular architectures [2].
The big change since v3 is that the immutable fields of 'struct vm_fault'
now live in a 'const' anonymous struct. Although Clang will silently
accept modifications to these fields [3], GCC emits an error. The
resulting diffstat is _considerably_ more manageable with this approach.
As before, I've also updated this branch:
https://git.kernel.org/pub/scm/linux/kernel/git/will/linux.git/log/?h=faultaround
Cheers,
Will
[1] https://www.spinics.net/lists/linux-mm/msg143831.html
[2] 315d09bf30c2 ("Revert "mm: make faultaround produce old ptes"")
[3] https://bugs.llvm.org/show_bug.cgi?id=48755
Cc: Catalin Marinas <catalin.marinas@....com>
Cc: Jan Kara <jack@...e.cz>
Cc: Minchan Kim <minchan@...nel.org>
Cc: Andrew Morton <akpm@...ux-foundation.org>
Cc: Kirill A. Shutemov <kirill.shutemov@...ux.intel.com>
Cc: Linus Torvalds <torvalds@...ux-foundation.org>
Cc: Vinayak Menon <vinmenon@...eaurora.org>
Cc: Andrew Morton <akpm@...ux-foundation.org>
Cc: Hugh Dickins <hughd@...gle.com>
Cc: Nick Desaulniers <ndesaulniers@...gle.com>
Cc: <kernel-team@...roid.com>
--->8
Kirill A. Shutemov (1):
mm: Cleanup faultaround and finish_fault() codepaths
Will Deacon (7):
mm: Allow architectures to request 'old' entries when prefaulting
arm64: mm: Implement arch_wants_old_prefaulted_pte()
mm: Move immutable fields of 'struct vm_fault' into anonymous struct
mm: Pass 'address' to map to do_set_pte() and drop FAULT_FLAG_PREFAULT
mm: Avoid modifying vmf.address in __collapse_huge_page_swapin()
mm: Use static initialisers for immutable fields of 'struct vm_fault'
mm: Mark anonymous struct field of 'struct vm_fault' as 'const'
arch/arm64/include/asm/pgtable.h | 12 +-
fs/xfs/xfs_file.c | 6 +-
include/linux/mm.h | 25 ++--
include/linux/pgtable.h | 11 ++
mm/filemap.c | 178 ++++++++++++++++++------
mm/khugepaged.c | 37 +++--
mm/memory.c | 223 +++++++++++--------------------
mm/shmem.c | 6 +-
mm/swapfile.c | 11 +-
9 files changed, 280 insertions(+), 229 deletions(-)
--
2.30.0.284.gd98b1dd5eaa7-goog
Powered by blists - more mailing lists