Hi everyone, This is version three of the patches I previously posted here:
v1: https://lore.kernel.org/r/20201120143557.6715-1-w...@kernel.org v2: https://lore.kernel.org/r/20201210121110.10094-1-w...@kernel.org The objective is to fix the lacklustre TLB invalidation on the clear_refs path and then augment the mmu_gather API to make it more difficult to abuse. Although there are other patch series pending to address related issues, I don't think this relatively straightforward set of fixes should be blocked on them. Will Cc: Yu Zhao <yuz...@google.com> Cc: Minchan Kim <minc...@kernel.org> Cc: Peter Zijlstra <pet...@infradead.org> Cc: Thomas Gleixner <t...@linutronix.de> Cc: Linus Torvalds <torva...@linux-foundation.org> Cc: Andrew Morton <a...@linux-foundation.org Cc: Vlastimil Babka <vba...@suse.cz> Cc: Mohamed Alzayat <alza...@mpi-sws.org> Cc: "Aneesh Kumar K.V" <aneesh.ku...@linux.ibm.com> Cc: Nadav Amit <na...@vmware.com> Cc: Andrea Arcangeli <aarca...@redhat.com> Cc: linux...@kvack.org --->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.30.0.365.g02bc693789-goog