Create 'old' ptes for faultaround mappings on arm64 with hardware access flag
Get series with b4
b4 am [email protected]Versions newest first · linked by author and title
- v4 Latest8 patches 15 repliesIn review
- v38 patches 14 repliesSuperseded
- v23 patches 15 repliesSuperseded
Earlier versions · 1
| Version | Posted | Patches | Replies | Status |
|---|---|---|---|---|
| v1 | 2 patches | 52 replies | Superseded |
Patches in v4 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/8 | mm: Cleanup faultaround and finish_fault() codepathsfs/ include/ include/ +2 more | +213 | 0 replies | |
| 2/8 | mm: Allow architectures to request 'old' entries when prefaultinginclude/ mm/ mm/ | +33 | 0 replies | |
| 3/8 | arm64: mm: Implement arch_wants_old_prefaulted_pte()arch/ | +11 | 0 replies | |
| 4/8 | mm: Move immutable fields of 'struct vm_fault' into anonymous structinclude/ | +8 | 2 replies | |
| 5/8 | mm: Pass 'address' to map to do_set_pte() and drop FAULT_FLAG_PREFAULTinclude/ mm/ mm/ | +14 | 0 replies | |
| 6/8 | mm: Avoid modifying vmf.address in __collapse_huge_page_swapin()mm/ | +18 | 0 replies | |
| 7/8 | mm: Use static initialisers for immutable fields of 'struct vm_fault'mm/ mm/ | +9 | 2 replies | |
| 8/8 | mm: Mark anonymous struct field of 'struct vm_fault' as 'const'include/ | +1 | 8 replies |
Reviews trailers per patch
1 of 8 patches has a Reviewed-by or Acked-by.
| Patch | Nick Desaulniers |
|---|---|
| 1/8 | |
| 2/8 | |
| 3/8 | |
| 4/8 | |
| 5/8 | |
| 6/8 | |
| 7/8 | R-b |
| 8/8 |
Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.
Cover letter [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/[email protected]
v2: https://lore.kernel.org/r/[email protected]
v3: https://lore.kernel.org/r/[email protected]
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
--->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(-)
Signature · 1 line
2.30.0.284.gd98b1dd5eaa7-goog