All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ingo Molnar <mingo@kernel.org>
To: Xuewen Yan <xuewen.yan@unisoc.com>
Cc: rafael@kernel.org, viresh.kumar@linaro.org, mingo@redhat.com,
	peterz@infradead.org, vincent.guittot@linaro.org,
	dietmar.eggemann@arm.com, rostedt@goodmis.org,
	bsegall@google.com, mgorman@suse.de, bristot@redhat.com,
	vschneid@redhat.com, guohua.yan@unisoc.com, qyousef@layalina.io,
	linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] cpufreq: schedutil: next_freq need update when cpufreq_limits changed
Date: Thu, 5 Oct 2023 13:26:50 +0200	[thread overview]
Message-ID: <ZR6delkbZxl31zuY@gmail.com> (raw)
In-Reply-To: <20230719130527.8074-1-xuewen.yan@unisoc.com>


* Xuewen Yan <xuewen.yan@unisoc.com> wrote:

> When cpufreq's policy is single, there is a scenario that will
> cause sg_policy's next_freq to be unable to update.
> 
> When the cpu's util is always max, the cpufreq will be max,
> and then if we change the policy's scaling_max_freq to be a
> lower freq, indeed, the sg_policy's next_freq need change to
> be the lower freq, however, because the cpu_is_busy, the next_freq
> would keep the max_freq.
> 
> For example:
> The cpu7 is single cpu:
> 
> unisoc:/sys/devices/system/cpu/cpufreq/policy7 # while true;do done&
> [1] 4737
> unisoc:/sys/devices/system/cpu/cpufreq/policy7 # taskset -p 80 4737
> pid 4737's current affinity mask: ff
> pid 4737's new affinity mask: 80
> unisoc:/sys/devices/system/cpu/cpufreq/policy7 # cat scaling_max_freq
> 2301000
> unisoc:/sys/devices/system/cpu/cpufreq/policy7 # cat scaling_cur_freq
> 2301000
> unisoc:/sys/devices/system/cpu/cpufreq/policy7 # echo 2171000 > scaling_max_freq
> unisoc:/sys/devices/system/cpu/cpufreq/policy7 # cat scaling_max_freq
> 2171000
> 
> At this time, the sg_policy's next_freq would keep 2301000.
> 
> To prevent the case happen, add the judgment of the need_freq_update flag.
> 
> Signed-off-by: Xuewen Yan <xuewen.yan@unisoc.com>
> Co-developed-by: Guohua Yan <guohua.yan@unisoc.com>
> Signed-off-by: Guohua Yan <guohua.yan@unisoc.com>
> ---
>  kernel/sched/cpufreq_schedutil.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/kernel/sched/cpufreq_schedutil.c b/kernel/sched/cpufreq_schedutil.c
> index 4492608b7d7f..458d359f5991 100644
> --- a/kernel/sched/cpufreq_schedutil.c
> +++ b/kernel/sched/cpufreq_schedutil.c
> @@ -350,7 +350,8 @@ static void sugov_update_single_freq(struct update_util_data *hook, u64 time,
>  	 * Except when the rq is capped by uclamp_max.
>  	 */
>  	if (!uclamp_rq_is_capped(cpu_rq(sg_cpu->cpu)) &&
> -	    sugov_cpu_is_busy(sg_cpu) && next_f < sg_policy->next_freq) {
> +	    sugov_cpu_is_busy(sg_cpu) && next_f < sg_policy->next_freq &&
> +	    !sg_policy->need_freq_update) {
>  		next_f = sg_policy->next_freq;
>  
>  		/* Restore cached freq as next_freq has changed */

Just wondering about the status of this fix - is it pending in
some tree, or should we apply it to the scheduler tree?

Thanks,

	Ingo

  parent reply	other threads:[~2023-10-05 14:20 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-07-19 13:05 [PATCH] cpufreq: schedutil: next_freq need update when cpufreq_limits changed Xuewen Yan
2023-07-21 22:19 ` Qais Yousef
2023-07-24  3:36   ` Xuewen Yan
2023-07-24 15:33     ` Pierre Gondois
2023-07-25  2:01       ` Xuewen Yan
2023-07-24 15:53     ` Qais Yousef
2023-07-25  2:21       ` Xuewen Yan
2023-07-25  8:50         ` Rafael J. Wysocki
2023-07-25 12:08           ` Xuewen Yan
2023-08-22 19:28             ` Rafael J. Wysocki
2023-10-05 11:26 ` Ingo Molnar [this message]
2023-10-05 11:35   ` Rafael J. Wysocki
2023-10-05 20:09     ` Ingo Molnar
2023-10-05 20:23 ` [tip: sched/urgent] cpufreq: schedutil: Update next_freq when cpufreq_limits change tip-bot2 for Xuewen Yan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ZR6delkbZxl31zuY@gmail.com \
    --to=mingo@kernel.org \
    --cc=bristot@redhat.com \
    --cc=bsegall@google.com \
    --cc=dietmar.eggemann@arm.com \
    --cc=guohua.yan@unisoc.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=mgorman@suse.de \
    --cc=mingo@redhat.com \
    --cc=peterz@infradead.org \
    --cc=qyousef@layalina.io \
    --cc=rafael@kernel.org \
    --cc=rostedt@goodmis.org \
    --cc=vincent.guittot@linaro.org \
    --cc=viresh.kumar@linaro.org \
    --cc=vschneid@redhat.com \
    --cc=xuewen.yan@unisoc.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.