linux_dsm_epyc7002/arch/powerpc
Paul Mackerras 55765483e1 KVM: PPC: Book3S HV: Fix check for running inside guest in global_invalidates()
The global_invalidates() function contains a check that is intended
to tell whether we are currently executing in the context of a hypercall
issued by the guest.  The reason is that the optimization of using a
local TLB invalidate instruction is only valid in that context.  The
check was testing local_paca->kvm_hstate.kvm_vcore, which gets set
when entering the guest but no longer gets cleared when exiting the
guest.  To fix this, we use the kvm_vcpu field instead, which does
get cleared when exiting the guest, by the kvmppc_release_hwthread()
calls inside kvmppc_run_core().

The effect of having the check wrong was that when kvmppc_do_h_remove()
got called from htab_write() on the destination machine during a
migration, it cleared the current cpu's bit in kvm->arch.need_tlb_flush.
This meant that when the guest started running in the destination VM,
it may miss out on doing a complete TLB flush, and therefore may end
up using stale TLB entries from a previous guest that used the same
LPID value.

This should make migration more reliable.

Signed-off-by: Paul Mackerras <paulus@samba.org>
Signed-off-by: Alexander Graf <agraf@suse.de>
2014-05-30 14:26:28 +02:00
..
boot powerpc: T4240: Add ina220 node in dts 2014-03-19 16:57:25 -05:00
configs Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2014-04-12 14:49:50 -07:00
crypto powerpc: Fix compile of sha1-powerpc-asm.S on 32-bit 2013-03-05 16:56:26 +11:00
include KVM: PPC: Book3S: Move KVM_REG_PPC_WORT to an unused register number 2014-05-30 14:26:28 +02:00
kernel PPC: ePAPR: Fix hypercall on LE guest 2014-05-30 14:26:26 +02:00
kvm KVM: PPC: Book3S HV: Fix check for running inside guest in global_invalidates() 2014-05-30 14:26:28 +02:00
lib selftests/powerpc: Import Anton's memcpy / copy_tofrom_user tests 2014-03-07 15:53:12 +11:00
math-emu powerpc: Correct emulated mtfsf instruction 2014-04-07 10:33:11 +10:00
mm power, sched: stop updating inside arch_update_cpu_topology() when nothing to be update 2014-04-09 12:54:17 +10:00
net net: filter: add jited flag to indicate jit compiled filters 2014-03-31 00:45:08 -04:00
oprofile cpufreq: remove unused notifier: CPUFREQ_{SUSPENDCHANGE|RESUMECHANGE} 2014-03-19 14:10:24 +01:00
perf powerpc/perf: Fix handling of L3 events with bank == 1 2014-03-24 09:48:33 +11:00
platforms More ACPI and power management fixes and updates for 3.15-rc1 2014-04-11 13:20:04 -07:00
sysdev Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2014-04-09 08:35:31 -07:00
xmon powerpc: Fix xmon disassembler for little-endian 2014-03-07 15:50:12 +11:00
Kconfig Merge git://git.infradead.org/users/eparis/audit 2014-04-12 12:38:53 -07:00
Kconfig.debug Merge branch 'kconfig-diet' from Dave Hansen 2013-07-04 11:25:51 -07:00
Makefile powerpc/le: Avoid creatng R_PPC64_TOCSAVE relocations for modules. 2014-04-09 12:53:44 +10:00
relocs_check.pl Fix warning typo "CONFIG_RELCOATABLE" 2013-05-29 15:11:30 +02:00