diff mbox series

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

Message ID 20211224012239.4694-1-yt.chang@mediatek.com (mailing list archive)
State New, archived
Headers show
Series [1/1] sched: Add update_rq_clock() in sched_rt_rq_enqueue() | expand

Commit Message

YT Chang Dec. 24, 2021, 1:22 a.m. UTC
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@mediatek.com>
Change-Id: I4fba5a561b7064aafa991d7f1a34431607779cb4
---
 kernel/sched/rt.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Peter Zijlstra Feb. 7, 2022, 10:48 a.m. UTC | #1
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@mediatek.com>
> 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
>
diff mbox series

Patch

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);
 	rt_se = rt_rq->tg->rt_se[cpu];
 
 	if (rt_rq->rt_nr_running) {