[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] x86/nmi: lower initial watchdog frequency to avoid boot hangs

On 06/02/18 16:23, Jan Beulich wrote:
>>>> On 06.02.18 at 17:14, <igor.druzhinin@xxxxxxxxxx> wrote:
>> On 06/02/18 16:07, Jan Beulich wrote:
>>>>>> On 05.02.18 at 22:18, <igor.druzhinin@xxxxxxxxxx> wrote:
>>>> --- a/xen/arch/x86/nmi.c
>>>> +++ b/xen/arch/x86/nmi.c
>>>> @@ -34,7 +34,8 @@
>>>>  #include <asm/apic.h>
>>>>  unsigned int nmi_watchdog = NMI_NONE;
>>>> -static unsigned int nmi_hz = HZ;
>>>> +/* initial watchdog frequency - shouldn't be too high to avoid boot hangs 
>> */
>>>> +static unsigned int nmi_hz = HZ / 10;
>>> For one - the comment should explain what "too high" means.
>>> Further - what if on another system 10Hz is still too high? I also hope
>>> you realize that you slow down boot a little for everyone just
>>> because of this one machine model. Can the lower frequency perhaps
>>> be set via DMI quirk, or otherwise obtain a command line override
>>> (perhaps something like "watchdog=probe:10Hz")?
>> I can improve the comment message.
>> Why does this change slow down anything while I'm lowering the frequency
>> - not making it higher?
> We wait for two occurrences of the NMI in wait_for_nmis().

This happens *much* later in the boot sequence after we actually enable
the watchdog on CPU0. Till that time we already get hundreds of them
regardless of the frequency.

>> The alternative approach would be to reshuffle
>> the code and take the reason before programming the next interrupt as
>> suggested before. In that case the actual frequency would be adjusted
>> naturally I think.
> Thinking about this, reading the reason early seems like a good idea
> to me irrespective of the issue here.
> Jan

Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.