[PATCH v2 0/6] tlb: Fix (soft-)dirty bit management clean up API

From: Will Deacon
Date: Thu Dec 10 2020 - 07:12:14 EST


Hi all,

This is version two of the patches I previously posted here:

https://lore.kernel.org/r/20201120143557.6715-1-will@xxxxxxxxxx

Since then, the arm64 fixes have been merged upstream, so this series
is now mainly just cleanup, with the exception of the first patch which
no longer appears to be theoretical after a bug report came up
independently:

https://lore.kernel.org/linux-mm/CA+32v5zzFYJQ7eHfJP-2OHeR+6p5PZsX=RDJNU6vGF3hLO+j-g@xxxxxxxxxxxxxx/

(albeit in a test case, but I think we should restore the old behaviour)

Changes since v1 include:

* Remove the MMU gather code from the soft-dirty path altogether,
making it consistent with the mprotect() path in terms of handling
the TLB invalidation explicitly.

* Remove start/end arguments from tlb_gather_mmu()

* Improve commit messages and fix typos

Cheers,

Will

Cc: Yu Zhao <yuzhao@xxxxxxxxxx>
Cc: Minchan Kim <minchan@xxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx
Cc: Vlastimil Babka <vbabka@xxxxxxx>
Cc: Mohamed Alzayat <alzayat@xxxxxxxxxxx>
Cc: "Aneesh Kumar K.V" <aneesh.kumar@xxxxxxxxxxxxx>
Cc: linux-mm@xxxxxxxxx

--->8

Will Deacon (6):
mm: proc: Invalidate TLB after clearing soft-dirty page state
tlb: mmu_gather: Remove unused start/end arguments from
tlb_finish_mmu()
tlb: mmu_gather: Introduce tlb_gather_mmu_fullmm()
tlb: mmu_gather: Remove start/end arguments from tlb_gather_mmu()
tlb: arch: Remove empty __tlb_remove_tlb_entry() stubs
x86/ldt: Use tlb_gather_mmu_fullmm() when freeing LDT page-tables

arch/ia64/include/asm/tlb.h | 4 ++--
arch/sparc/include/asm/tlb_64.h | 1 -
arch/x86/include/asm/tlb.h | 1 -
arch/x86/kernel/ldt.c | 10 ++++++++--
fs/exec.c | 4 ++--
fs/proc/task_mmu.c | 9 +++++----
include/asm-generic/tlb.h | 6 ++++--
include/linux/mm_types.h | 7 +++----
mm/hugetlb.c | 18 ++----------------
mm/madvise.c | 12 ++++++------
mm/memory.c | 8 ++++----
mm/mmap.c | 8 ++++----
mm/mmu_gather.c | 31 +++++++++++++++++--------------
mm/oom_kill.c | 6 +++---
14 files changed, 60 insertions(+), 65 deletions(-)

--
2.29.2.576.ga3fc446d84-goog