Re: [PATCH 1/1] sched: Add update_rq_clock() in sched_rt_rq_enqueue()

From: Peter Zijlstra
Date: Mon Feb 07 2022 - 05:56:30 EST


On Fri, Dec 24, 2021 at 09:22:39AM +0800, YT Chang wrote:
> Add update_rq_clock() in sched_rt_rq_enqueue() to
> prevent the warning "rq->clock_update_flags < RQCF_ACT_SKIP"
> when call rq_clock() in cpufreq_update_util().
>
> sched_rt_rq_enqueue ->
> enqueue_top_rt_rq ->
> cpufreq_update_util ->
> rq_clock ->
> assert_clock_updated
>
> Signed-off-by: YT Chang <yt.chang@xxxxxxxxxxxx>
> Change-Id: I4fba5a561b7064aafa991d7f1a34431607779cb4

Change-Id does not belong in kernel patches..

> ---
> kernel/sched/rt.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c
> index b48baaba2fc2..faf1a68c0723 100644
> --- a/kernel/sched/rt.c
> +++ b/kernel/sched/rt.c
> @@ -539,6 +539,7 @@ static void sched_rt_rq_enqueue(struct rt_rq *rt_rq)
>
> int cpu = cpu_of(rq);
>
> + update_rq_clock(rq);

This isn't right I think; there's at least one caller of this function
that already did that. A double clock update is also wrong. Each path
should have just one.

> rt_se = rt_rq->tg->rt_se[cpu];
>
> if (rt_rq->rt_nr_running) {
> --
> 2.18.0
>