linux/arch/powerpc
Paul Mackerras df158189db KVM: PPC: Book 3S HV: Do ptesync in radix guest exit path
A radix guest can execute tlbie instructions to invalidate TLB entries.
After a tlbie or a group of tlbies, it must then do the architected
sequence eieio; tlbsync; ptesync to ensure that the TLB invalidation
has been processed by all CPUs in the system before it can rely on
no CPU using any translation that it just invalidated.

In fact it is the ptesync which does the actual synchronization in
this sequence, and hardware has a requirement that the ptesync must
be executed on the same CPU thread as the tlbies which it is expected
to order.  Thus, if a vCPU gets moved from one physical CPU to
another after it has done some tlbies but before it can get to do the
ptesync, the ptesync will not have the desired effect when it is
executed on the second physical CPU.

To fix this, we do a ptesync in the exit path for radix guests.  If
there are any pending tlbies, this will wait for them to complete.
If there aren't, then ptesync will just do the same as sync.

Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
2018-05-17 15:17:13 +10:00
..
boot powerpc updates for 4.17 2018-04-07 12:08:19 -07:00
configs scsi: remove the fdomain and fdomain_cs drivers 2018-03-19 22:54:47 -04:00
crypto crypto: hash - annotate algorithms taking optional key 2018-01-12 23:03:35 +11:00
include KVM: PPC: Book3S HV: Snapshot timebase offset on guest entry 2018-05-17 15:16:45 +10:00
kernel KVM: PPC: Book3S HV: Snapshot timebase offset on guest entry 2018-05-17 15:16:45 +10:00
kvm KVM: PPC: Book 3S HV: Do ptesync in radix guest exit path 2018-05-17 15:17:13 +10:00
lib powerpc/lib: Fix off-by-one in alternate feature patching 2018-04-17 00:37:48 +10:00
math-emu
mm powerpc/mm: Flush cache on memory hot(un)plug 2018-04-24 09:46:56 +10:00
net Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-03-05 11:29:24 -08:00
oprofile powerpc: Use sizeof(*foo) rather than sizeof(struct foo) 2018-03-20 16:47:53 +11:00
perf powerpc updates for 4.17 2018-04-07 12:08:19 -07:00
platforms rtc: opal: Fix OPAL RTC driver OPAL_BUSY loops 2018-04-25 13:24:13 +10:00
purgatory
sysdev powerpc/xive: Fix trying to "push" an already active pool VP 2018-04-19 00:49:45 +10:00
tools
xmon Merge branch 'topic/paca' into next 2018-03-31 09:09:36 +11:00
Kconfig kexec_file: make use of purgatory optional 2018-04-13 17:10:27 -07:00
Kconfig.debug powerpc: Add new kconfig CONFIG_PPC_IRQ_SOFT_MASK_DEBUG 2018-01-19 22:37:03 +11:00
Makefile powerpc/64s: Add POWER9 CPU type selection 2018-04-01 22:15:32 +10:00
Makefile.postlink