Re: KVM on POWER8 host lock up since 10d91611f426 ("powerpc/64s: Reimplement book3s idle code in C")
From: Nicholas Piggin <npiggin@gmail.com>
Date: 2020-09-07 13:16:48
Excerpts from Michael Ellerman's message of August 31, 2020 8:50 pm:
Michal Suchánek [off-list ref] writes:quoted
On Mon, Aug 31, 2020 at 11:14:18AM +1000, Nicholas Piggin wrote:quoted
Excerpts from Michal Suchánek's message of August 31, 2020 6:11 am:quoted
Hello, on POWER8 KVM hosts lock up since commit 10d91611f426 ("powerpc/64s: Reimplement book3s idle code in C"). The symptom is host locking up completely after some hours of KVM workload with messages like 2020-08-30T10:51:31+00:00 obs-power8-01 kernel: KVM: couldn't grab cpu 47 2020-08-30T10:51:31+00:00 obs-power8-01 kernel: KVM: couldn't grab cpu 71 2020-08-30T10:51:31+00:00 obs-power8-01 kernel: KVM: couldn't grab cpu 47 2020-08-30T10:51:31+00:00 obs-power8-01 kernel: KVM: couldn't grab cpu 71 2020-08-30T10:51:31+00:00 obs-power8-01 kernel: KVM: couldn't grab cpu 47 printed before the host locks up. The machines run sandboxed builds which is a mixed workload resulting in IO/single core/mutiple core load over time and there are periods of no activity and no VMS runnig as well. The VMs are shortlived so VM setup/terdown is somewhat excercised as well. POWER9 with the new guest entry fast path does not seem to be affected. Reverted the patch and the followup idle fixes on top of 5.2.14 and re-applied commit a3f3072db6ca ("powerpc/powernv/idle: Restore IAMR after idle") which gives same idle code as 5.1.16 and the kernel seems stable. Config is attached. I cannot easily revert this commit, especially if I want to use the same kernel on POWER8 and POWER9 - many of the POWER9 fixes are applicable only to the new idle code. Any idea what can be the problem?So hwthread_state is never getting back to to HWTHREAD_IN_IDLE on those threads. I wonder what they are doing. POWER8 doesn't have a good NMI IPI and I don't know if it supports pdbg dumping registers from the BMC unfortunately.It may be possible to set up fadump with a later kernel version that supports it on powernv and dump the whole kernel.Your firmware won't support it AFAIK. You could try kdump, but if we have CPUs stuck in KVM then there's a good chance it won't work :/
I haven't had any luck yet reproducing this still. Testing with sub cores of various different combinations, etc. I'll keep trying though. I don't know if there's much we can add to debug it. Can we run pdbg on the BMCs on these things? Thanks, Nick