Re: [PATCH 0/4] Avoid soft lockup message when KVM is stopped by host
From: Marcelo Tosatti <hidden>
Date: 2011-08-30 18:39:36
Also in:
kvm, lkml
On Tue, Aug 30, 2011 at 10:37:13AM -0600, Eric B Munson wrote:
On Tue, Aug 30, 2011 at 06:26, Marcelo Tosatti [off-list ref] wrote:quoted
On Mon, Aug 29, 2011 at 05:27:11PM -0600, Eric B Munson wrote:quoted
Currently, when qemu stops a guest kernel that guest will issue a soft lockup message when it resumes. This set provides the ability for qemu to comminucate to the guest that it has been stopped. When the guest hits the watchdog on resume it will check if it was suspended before issuing the warning. Eric B Munson (4): Add flag to indicate that a vm was stopped by the host Add functions to check if the host has stopped the vm Add generic stubs for kvm stop check functions Add check for suspended vm in softlockup detector arch/x86/include/asm/pvclock-abi.h | 1 + arch/x86/include/asm/pvclock.h | 2 ++ arch/x86/kernel/kvmclock.c | 14 ++++++++++++++ include/asm-generic/pvclock.h | 14 ++++++++++++++ kernel/watchdog.c | 12 ++++++++++++ 5 files changed, 43 insertions(+), 0 deletions(-) create mode 100644 include/asm-generic/pvclock.h -- 1.7.4.1How is the host supposed to set this flag?The hypervisor will set the flag (the second bit in the struct pvclock_vcpu_time_info.flags field) when it stops the guest. I could be reading pvclock-abi.h incorrectly, but the way I understand it is that this structure is used to communicate between hypervisor and guest.
Yes, its awkward though (to have an interface to modify a bit in pvclock->flags from QEMU). Anyway, it appears that all elements to fix this in QEMU without the need for a paravirt interface are available... did you look into my suggestion?
quoted
As mentioned previously, if you save save/restore the offset added to kvmclock on stop/cont (and the TSC MSR, forgot to mention that), no paravirt infrastructure is required. Which means the issue is also fixed for older guests.