OpenCloudOS-Kernel/arch
Peter Zijlstra 0ed1325967 mm/mmu_gather: invalidate TLB correctly on batch allocation failure and flush
Architectures for which we have hardware walkers of Linux page table
should flush TLB on mmu gather batch allocation failures and batch flush.
Some architectures like POWER supports multiple translation modes (hash
and radix) and in the case of POWER only radix translation mode needs the
above TLBI.  This is because for hash translation mode kernel wants to
avoid this extra flush since there are no hardware walkers of linux page
table.  With radix translation, the hardware also walks linux page table
and with that, kernel needs to make sure to TLB invalidate page walk cache
before page table pages are freed.

More details in commit d86564a2f0 ("mm/tlb, x86/mm: Support invalidating
TLB caches for RCU_TABLE_FREE")

The changes to sparc are to make sure we keep the old behavior since we
are now removing HAVE_RCU_TABLE_NO_INVALIDATE.  The default value for
tlb_needs_table_invalidate is to always force an invalidate and sparc can
avoid the table invalidate.  Hence we define tlb_needs_table_invalidate to
false for sparc architecture.

Link: http://lkml.kernel.org/r/20200116064531.483522-3-aneesh.kumar@linux.ibm.com
Fixes: a46cc7a90f ("powerpc/mm/radix: Improve TLB/PWC flushes")
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
Acked-by: Michael Ellerman <mpe@ellerman.id.au>	[powerpc]
Cc: <stable@vger.kernel.org>	[4.14+]
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2020-02-04 03:05:26 +00:00
..
alpha threads-v5.6 2020-01-29 19:38:34 -08:00
arc arc: mm: add p?d_leaf() definitions 2020-02-04 03:05:24 +00:00
arm arm: mm: add p?d_leaf() definitions 2020-02-04 03:05:24 +00:00
arm64 x86: mm: avoid allocating struct mm_struct on the stack 2020-02-04 03:05:25 +00:00
c6x Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2020-01-28 10:07:09 -08:00
csky TTY/Serial driver updates for 5.6-rc1 2020-01-29 10:13:27 -08:00
h8300 Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2020-01-28 10:07:09 -08:00
hexagon Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2020-01-28 10:07:09 -08:00
ia64 threads-v5.6 2020-01-29 19:38:34 -08:00
m68k threads-v5.6 2020-01-29 19:38:34 -08:00
microblaze threads-v5.6 2020-01-29 19:38:34 -08:00
mips mips: mm: add p?d_leaf() definitions 2020-02-04 03:05:24 +00:00
nds32 TTY/Serial driver updates for 5.6-rc1 2020-01-29 10:13:27 -08:00
nios2 TTY/Serial driver updates for 5.6-rc1 2020-01-29 10:13:27 -08:00
openrisc TTY/Serial driver updates for 5.6-rc1 2020-01-29 10:13:27 -08:00
parisc threads-v5.6 2020-01-29 19:38:34 -08:00
powerpc mm/mmu_gather: invalidate TLB correctly on batch allocation failure and flush 2020-02-04 03:05:26 +00:00
riscv riscv: mm: add p?d_leaf() definitions 2020-02-04 03:05:24 +00:00
s390 s390: mm: add p?d_leaf() definitions 2020-02-04 03:05:24 +00:00
sh threads-v5.6 2020-01-29 19:38:34 -08:00
sparc mm/mmu_gather: invalidate TLB correctly on batch allocation failure and flush 2020-02-04 03:05:26 +00:00
um MPX requires recompiling applications, which requires compiler support. 2020-01-30 16:11:50 -08:00
unicore32 MPX requires recompiling applications, which requires compiler support. 2020-01-30 16:11:50 -08:00
x86 x86: mm: avoid allocating struct mm_struct on the stack 2020-02-04 03:05:25 +00:00
xtensa threads-v5.6 2020-01-29 19:38:34 -08:00
.gitignore
Kconfig mm/mmu_gather: invalidate TLB correctly on batch allocation failure and flush 2020-02-04 03:05:26 +00:00