Re: [PATCH v2] clocksource: Warn if too many missing ticks are detected
From: Waiman Long
Date: Wed Sep 19 2018 - 12:32:03 EST
On 09/19/2018 05:17 AM, Peter Zijlstra wrote:
> On Wed, Sep 19, 2018 at 09:53:47AM +0200, Thomas Gleixner wrote:
>> On Tue, 18 Sep 2018, Waiman Long wrote:
>>
>>> The clocksource watchdog, when running, is scheduled on all the CPUs in
>>> the system sequentially on a round-robin fashion with a period of 0.5s.
>>> A bug in the 4.18 kernel is causing missing ticks when nohz_full
>>> is specified. Under some circumstances, this causes the watchdog to
>>> incorrectly state that the TSC is unstable because of counter overflow
>>> in the hpet watchdog clock source after a few minutes delay.
>>>
>>> That particular bug is fixed by the 4.19 commit 7059b36636beab ("sched:
>>> idle: Avoid retaining the tick when it has been stopped"). To make it
>>> easier to catch this kind of bug in the future, a check is added to see
>>> if there is too much delay in the invocation of the watchdog callback
>>> and print a warning once if it happens.
>> Second thoughts on this. Putting the check into the clocksource watchdog is
>> the wrong place as it's just checking at a place where the symptom
>> shows. What about putting it right to the source, i.e. in the timer wheel
>> as it does not depend on the clocksource watchdog being active. The
>> clocksource watchdog triggering is just one of the symptoms, but in general
>> timers being massively late is not a good thing.
> Just make sure to think of the virt case; virt can cause all kind of
> 'fun' lateness.
So the question now is how much "lateness" is abnormal? My current patch
just use a 1/2 s threshold. Is that too small or too big?
Cheers,
Longman