Re: [PATCH] sched/rt: silence double clock update warning by using rq_lock wrappers

From: Valentin Schneider
Date: Thu Aug 15 2019 - 13:24:59 EST


On 15/08/2019 15:53, Phil Auld wrote:
> With WARN_DOUBLE_CLOCK enabled a false positive warning can occur in rt
>
> [] rq->clock_update_flags & RQCF_UPDATED
> [] WARNING: CPU: 6 PID: 21426 at kernel/sched/core.c:225
> update_rq_clock+0x90/0x130
> [] Call Trace:
> [] update_rq_clock+0x90/0x130
> [] sched_rt_period_timer+0x11f/0x340
> [] __hrtimer_run_queues+0x100/0x280
> [] hrtimer_interrupt+0x100/0x220
> [] smp_apic_timer_interrupt+0x6a/0x130
> [] apic_timer_interrupt+0xf/0x20
>
> sched_rt_period_timer does:
> raw_spin_lock(&rq->lock);
> update_rq_clock(rq);
>
> which triggers the warning because of not using the rq_lock wrappers.
> So, use the wrappers.
>
> Signed-off-by: Phil Auld <pauld@xxxxxxxxxx>
> Cc: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
> Cc: Ingo Molnar <mingo@xxxxxxxxxx>
> Cc: Valentin Schneider <valentin.schneider@xxxxxxx>
> Cc: Dietmar Eggemann <dietmar.eggemann@xxxxxxx>

Looks sane to me, and no missing _irqsave this time around ;)

Reviewed-by: Valentin Schneider <valentin.schneider@xxxxxxx>