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

[email protected] Thu, 01 Sep 2011 20:27:49 +0000
Newsgroups org.kernel.vger.kvm-ia64,org.kernel.vger.kvm,org.kernel.vger.kvm-ppc,org.kernel.vger.linux-arch,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
 On Thu, 01 Sep 2011 14:24:12 -0500, Anthony Liguori wrote:
> On 08/30/2011 07:26 AM, Marcelo Tosatti 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?
>>
>> 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.
>
> IIRC, the steal time patches have some logic that basically say:
>
> if there was steal time:
>    kick soft lockup detector
>
> I wonder if that serves this purpose provided that time spent in stop
> is accounted as steal time.  If it isn't, perhaps it should be?
>
> Regards,
>
> Anthony Liguori
>

 I could be missing it, but I don't see anywhere in the steal time 
 patches that kicks the watchdog.

 Accounting stopped time as stolen time opens a possible problem when 
 the accounting (CPU power modification) part is turned on.  As a process 
 accumulates steal time its CPU power is increased.  If we account 
 stopped time as stolen, it will do strange things with CPU power for 
 that process.  I believe that it is for this reason that patch 4 of 
 Glauber's series explicitly states that halted time is not stolen time.  
 Stolen time is only accumulated when a vCPU actually has work to do.

 Eric