mbox series

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

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

Message

Will Deacon Dec. 10, 2020, 12:11 p.m. UTC
Hi all,

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

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

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@mail.gmail.com/

(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@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: 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

Peter Zijlstra Dec. 10, 2020, 12:26 p.m. UTC | #1
On Thu, Dec 10, 2020 at 12:11:04PM +0000, Will Deacon wrote:
> 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

Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Will Deacon Dec. 17, 2020, 11:50 a.m. UTC | #2
On Thu, Dec 10, 2020 at 01:26:07PM +0100, Peter Zijlstra wrote:
> On Thu, Dec 10, 2020 at 12:11:04PM +0000, Will Deacon wrote:
> > 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
> 
> Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>

Cheers. I don't think this series is urgent, so I'll post it again in
the New Year.

Will