Commit a7e61ceb authored by Mahesh Salgaonkar's avatar Mahesh Salgaonkar Committed by Tim Gardner

UBUNTU: SAUCE: KVM: PPC: Book3S HV: Fix soft lockups in KVM on HMI for time base errors

BugLink: http://bugs.launchpad.net/bugs/1537881
https://lists.ozlabs.org/pipermail/linuxppc-dev/2016-January/138011.html

When secondaries are napping in kvm_unsplit_nap() with hwthread_req = 1,
the HMI goes ignored even though subcores are already exited the guest.
Hence HMI keeps waking up secondaries from nap in a loop and secondaries
always go back to nap since no vcore is assigned to them. This makes
impossible for primary thread to get hold of secondary threads resulting
into a soft lockup in KVM path.

This patch fixes this by adding a HMI check just before the thread goes
to unsplit nap.
Signed-off-by: default avatarMahesh Salgaonkar <mahesh@linux.vnet.ibm.com>
Signed-off-by: default avatarTim Gardner <tim.gardner@canonical.com>
parent 0a639b53
......@@ -440,6 +440,12 @@ kvm_no_guest:
* whole-core mode, so we need to nap.
*/
kvm_unsplit_nap:
/* Before we head down to nap, check if HMI is pending and handle it */
cmpwi r12, BOOK3S_INTERRUPT_HMI
bne 55f
li r3, 0 /* NULL argument */
bl hmi_exception_realmode
55:
/*
* Ensure that secondary doesn't nap when it has
* its vcore pointer set.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment