Re: [PATCH 0/4] Avoid soft lockup message when KVM is stopped by host

From: emunson
Date: Tue Aug 30 2011 - 20:12:01 EST


On Tue, 30 Aug 2011 15:36:13 -0300, Marcelo Tosatti wrote:
On Tue, Aug 30, 2011 at 10:37:13AM -0600, Eric B Munson wrote:
On Tue, Aug 30, 2011 at 06:26, Marcelo Tosatti <mtosatti@xxxxxxxxxx> wrote:
> On Mon, Aug 29, 2011 at 05:27:11PM -0600, Eric B Munson wrote:
>> 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.1
>
> How 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?

I have not yet, but will look into it. I sent these out because I was
under the impression that there was some discussion at LinuxCon about
your suggestion and that it was agreed that the all user space solution
was not feasible.


> 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.
>

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/