mbox series

[v3,0/6] tlb: Fix (soft-)dirty bit management & clean up API

Message ID 20210127235347.1402-1-will@kernel.org (mailing list archive)
Headers show
Series tlb: Fix (soft-)dirty bit management & clean up API | expand

Message

Will Deacon Jan. 27, 2021, 11:53 p.m. UTC
Hi everyone,

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

v1:  https://lore.kernel.org/r/20201120143557.6715-1-will@kernel.org
v2:  https://lore.kernel.org/r/20201210121110.10094-1-will@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 <yuzhao@google.com>
Cc: Minchan Kim <minchan@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Andrew Morton <akpm@linux-foundation.org
Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: Mohamed Alzayat <alzayat@mpi-sws.org>
Cc: "Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com>
Cc: Nadav Amit <namit@vmware.com>
Cc: Andrea Arcangeli <aarcange@redhat.com>
Cc: linux-mm@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(-)

Comments

Linus Torvalds Jan. 28, 2021, 5:14 p.m. UTC | #1
On Wed, Jan 27, 2021 at 3:54 PM Will Deacon <will@kernel.org> wrote:
>
> 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.

The series continues to look good to me.

I don't love our "tlb_flush_pending" hackery, but it is what it is,
and at least this series cleans up the proper flushing interfaces.

           Linus
Peter Zijlstra Jan. 29, 2021, 11:09 a.m. UTC | #2
On Thu, Jan 28, 2021 at 09:14:24AM -0800, Linus Torvalds wrote:
> On Wed, Jan 27, 2021 at 3:54 PM Will Deacon <will@kernel.org> wrote:
> >
> > 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.
> 
> The series continues to look good to me.

I've taken that as an:

Acked-by: Linus Torvalds <torvalds@linux-foundation.org>

and queued the lot for tip/core/mm.

Thanks!