android_kernel_xiaomi_sm8450/arch
Suraj Jitindar Singh 9b28291237 KVM: PPC: Book3S HV: Fix TLB management on SMT8 POWER9 and POWER10 processors
[ Upstream commit 77bbbc0cf84834ed130838f7ac1988567f4d0288 ]

The POWER9 vCPU TLB management code assumes all threads in a core share
a TLB, and that TLBIEL execued by one thread will invalidate TLBs for
all threads. This is not the case for SMT8 capable POWER9 and POWER10
(big core) processors, where the TLB is split between groups of threads.
This results in TLB multi-hits, random data corruption, etc.

Fix this by introducing cpu_first_tlb_thread_sibling etc., to determine
which siblings share TLBs, and use that in the guest TLB flushing code.

[npiggin@gmail.com: add changelog and comment]

Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Reviewed-by: Fabiano Rosas <farosas@linux.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20210602040441.3984352-1-npiggin@gmail.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-07-14 16:55:55 +02:00
..
alpha sched/core: Initialize the idle task with preemption disabled 2021-07-14 16:55:50 +02:00
arc sched/core: Initialize the idle task with preemption disabled 2021-07-14 16:55:50 +02:00
arm sched/core: Initialize the idle task with preemption disabled 2021-07-14 16:55:50 +02:00
arm64 arm64: perf: Convert snprintf to sysfs_emit 2021-07-14 16:55:52 +02:00
c6x arch-cleanup-2020-10-22 2020-10-23 10:06:38 -07:00
csky sched/core: Initialize the idle task with preemption disabled 2021-07-14 16:55:50 +02:00
h8300 h8300: fix PREEMPTION build, TI_PRE_COUNT undefined 2021-02-17 11:02:28 +01:00
hexagon Hexagon: change jumps to must-extend in futex_atomic_* 2021-07-11 12:53:31 +02:00
ia64 sched/core: Initialize the idle task with preemption disabled 2021-07-14 16:55:50 +02:00
m68k m68k: Add missing mmap_read_lock() to sys_cacheflush() 2021-05-14 09:50:19 +02:00
microblaze local64.h: make <asm/local64.h> mandatory 2021-01-12 20:18:16 +01:00
mips sched/core: Initialize the idle task with preemption disabled 2021-07-14 16:55:50 +02:00
nds32 nds32: flush_dcache_page: use page_mapping_file to avoid races with swapoff 2021-04-14 08:41:58 +02:00
nios2 nios2: fixed broken sys_clone syscall 2021-03-04 11:38:16 +01:00
openrisc sched/core: Initialize the idle task with preemption disabled 2021-07-14 16:55:50 +02:00
parisc sched/core: Initialize the idle task with preemption disabled 2021-07-14 16:55:50 +02:00
powerpc KVM: PPC: Book3S HV: Fix TLB management on SMT8 POWER9 and POWER10 processors 2021-07-14 16:55:55 +02:00
riscv sched/core: Initialize the idle task with preemption disabled 2021-07-14 16:55:50 +02:00
s390 sched/core: Initialize the idle task with preemption disabled 2021-07-14 16:55:50 +02:00
sh sched/core: Initialize the idle task with preemption disabled 2021-07-14 16:55:50 +02:00
sparc sched/core: Initialize the idle task with preemption disabled 2021-07-14 16:55:50 +02:00
um um: Disable CONFIG_GCOV with MODULES 2021-05-22 11:40:53 +02:00
x86 sched/core: Initialize the idle task with preemption disabled 2021-07-14 16:55:50 +02:00
xtensa sched/core: Initialize the idle task with preemption disabled 2021-07-14 16:55:50 +02:00
.gitignore
Kconfig fanotify: Fix sys_fanotify_mark() on native x86-32 2021-01-17 14:16:59 +01:00