linux/arch/powerpc/platforms
Paul Mackerras 19f8a5b5be powerpc/powernv: Don't reprogram SLW image on every KVM guest entry/exit
Commit 24be85a23d ("powerpc/powernv: Clear PECE1 in LPCR via stop-api
only on Hotplug", 2017-07-21) added two calls to opal_slw_set_reg()
inside pnv_cpu_offline(), with the aim of changing the LPCR value in
the SLW image to disable wakeups from the decrementer while a CPU is
offline.  However, pnv_cpu_offline() gets called each time a secondary
CPU thread is woken up to participate in running a KVM guest, that is,
not just when a CPU is offlined.

Since opal_slw_set_reg() is a very slow operation (with observed
execution times around 20 milliseconds), this means that an offline
secondary CPU can often be busy doing the opal_slw_set_reg() call
when the primary CPU wants to grab all the secondary threads so that
it can run a KVM guest.  This leads to messages like "KVM: couldn't
grab CPU n" being printed and guest execution failing.

There is no need to reprogram the SLW image on every KVM guest entry
and exit.  So that we do it only when a CPU is really transitioning
between online and offline, this moves the calls to
pnv_program_cpu_hotplug_lpcr() into pnv_smp_cpu_kill_self().

Fixes: 24be85a23d ("powerpc/powernv: Clear PECE1 in LPCR via stop-api only on Hotplug")
Cc: stable@vger.kernel.org # v4.14+
Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2019-02-22 00:10:15 +11:00
..
4xx powerpc/4xx/ocm: Fix fix for phys_addr_t printf warnings 2019-01-11 23:57:20 +11:00
8xx powerpc updates for 4.20 2018-10-26 14:36:21 -07:00
40x PCI: consolidate PCI config entry in drivers/pci 2018-11-23 11:45:34 +09:00
44x powerpc/44x: Force PCI on for CURRITUCK 2019-02-22 00:10:15 +11:00
52xx Kconfig file consolidation for v4.21 2018-12-29 13:40:29 -08:00
82xx powerpc/kconfig: remove CONFIG_6xx 2018-11-26 22:33:37 +11:00
83xx Kconfig file consolidation for v4.21 2018-12-29 13:40:29 -08:00
85xx powerpc/dma: trim the fat from <asm/dma-mapping.h> 2019-02-18 22:41:04 +11:00
86xx powerpc/dma: use the generic direct mapping bypass 2019-02-18 22:41:04 +11:00
512x Kconfig file consolidation for v4.21 2018-12-29 13:40:29 -08:00
amigaone Kconfig file consolidation for v4.21 2018-12-29 13:40:29 -08:00
cell Merge branch 'topic/dma' into next 2019-02-21 23:15:10 +11:00
chrp Kconfig file consolidation for v4.21 2018-12-29 13:40:29 -08:00
embedded6xx Kconfig file consolidation for v4.21 2018-12-29 13:40:29 -08:00
maple Kconfig file consolidation for v4.21 2018-12-29 13:40:29 -08:00
pasemi powerpc/dma: use the generic direct mapping bypass 2019-02-18 22:41:04 +11:00
powermac Kconfig file consolidation for v4.21 2018-12-29 13:40:29 -08:00
powernv powerpc/powernv: Don't reprogram SLW image on every KVM guest entry/exit 2019-02-22 00:10:15 +11:00
ps3 Move static keyword at beginning of declaration 2019-02-03 20:44:19 +11:00
pseries powerpc/pseries: export timebase register sample in lparcfg 2019-02-22 00:10:15 +11:00
fsl_uli1575.c of/irq: Refactor interrupt-map parsing 2013-10-24 11:43:04 +01:00
Kconfig Kconfig file consolidation for v4.21 2018-12-29 13:40:29 -08:00
Kconfig.cputype Merge branch 'topic/dma' into next 2019-02-21 23:15:10 +11:00
Makefile powerpc: Add -Werror at arch/powerpc level 2018-10-19 00:56:17 +11:00