[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20201120143557.6715-1-will@kernel.org>
Date: Fri, 20 Nov 2020 14:35:51 +0000
From: Will Deacon <will@...nel.org>
To: linux-kernel@...r.kernel.org
Cc: kernel-team@...roid.com, Will Deacon <will@...nel.org>,
Catalin Marinas <catalin.marinas@....com>,
Yu Zhao <yuzhao@...gle.com>, Minchan Kim <minchan@...nel.org>,
Peter Zijlstra <peterz@...radead.org>,
Linus Torvalds <torvalds@...ux-foundation.org>,
Anshuman Khandual <anshuman.khandual@....com>,
linux-mm@...ck.org, linux-arm-kernel@...ts.infradead.org
Subject: [PATCH 0/6] tlb: Fix access and (soft-)dirty bit management
Hi all,
This series attempts to fix some issues relating to our access and
(soft-)dirty bit management relating to TLB invalidation. It's a bit all
over the place because I kept running into new issues as I was trying to
figure it out.
The first patch fixes a crash we've seen in practice. The other patches
are all addressing things that I found by code inspection and I would
_really_ appreciate others having a look. In particular, what can go
wrong in practice if a CPU has a stale, writable entry in the TLB for a
pte which is !pte_write()? It feels intuitively bad, but I couldn't find
anywhere that would explode (the CoW path looks alright, for example).
Cheers,
Will
Cc: Catalin Marinas <catalin.marinas@....com>
Cc: Yu Zhao <yuzhao@...gle.com>
Cc: Minchan Kim <minchan@...nel.org>
Cc: Peter Zijlstra <peterz@...radead.org>
Cc: Linus Torvalds <torvalds@...ux-foundation.org>
Cc: Andrew Morton <akpm@...ux-foundation.org
Cc: Anshuman Khandual <anshuman.khandual@....com>
Cc: linux-mm@...ck.org
Cc: linux-arm-kernel@...ts.infradead.org
--->8
Will Deacon (6):
arm64: pgtable: Fix pte_accessible()
arm64: pgtable: Ensure dirty bit is preserved across pte_wrprotect()
tlb: mmu_gather: Remove unused start/end arguments from
tlb_finish_mmu()
mm: proc: Invalidate TLB after clearing soft-dirty page state
tlb: mmu_gather: Introduce tlb_gather_mmu_fullmm()
mm: proc: Avoid fullmm flush for young/dirty bit toggling
arch/arm64/include/asm/pgtable.h | 31 +++++++++++++++----------------
arch/ia64/include/asm/tlb.h | 2 +-
arch/x86/kernel/ldt.c | 2 +-
fs/exec.c | 2 +-
fs/proc/task_mmu.c | 22 +++++++++++++---------
include/asm-generic/tlb.h | 6 ++++--
include/linux/mm_types.h | 4 ++--
mm/hugetlb.c | 2 +-
mm/madvise.c | 6 +++---
mm/memory.c | 4 ++--
mm/mmap.c | 6 +++---
mm/mmu_gather.c | 21 +++++++++++++++------
mm/oom_kill.c | 4 ++--
13 files changed, 63 insertions(+), 49 deletions(-)
--
2.29.2.454.gaff20da3a2-goog
Powered by blists - more mailing lists