From: "Doug Smythies" <dsmythies@telus.net> To: "'Rafael J. Wysocki'" <rafael@kernel.org>, "'Viresh Kumar'" <viresh.kumar@linaro.org> Cc: "'Rafael Wysocki'" <rjw@rjwysocki.net>, "'Ingo Molnar'" <mingo@redhat.com>, "'Peter Zijlstra'" <peterz@infradead.org>, "'Linux PM'" <linux-pm@vger.kernel.org>, "'Vincent Guittot'" <vincent.guittot@linaro.org>, "'v4 . 18+'" <stable@vger.kernel.org>, "'Doug Smythies'" <doug.smythies@gmail.com>, "'Linux Kernel Mailing List'" <linux-kernel@vger.kernel.org> Subject: RE: [PATCH V3 1/2] cpufreq: schedutil: Don't skip freq update when limits change Date: Fri, 2 Aug 2019 17:00:52 -0700 [thread overview] Message-ID: <000701d5498e$85bf7b40$913e71c0$@net> (raw) In-Reply-To: <CAJZ5v0g=zXWps29EiFJBPozyw4b9z0YOhtU-UV6hfyu8NbVKNw@mail.gmail.com> On 2019.08.02 02:12 Rafael J. Wysocki wrote: > On Fri, Aug 2, 2019 at 7:44 AM Viresh Kumar <viresh.kumar@linaro.org> wrote: >> >> To avoid reducing the frequency of a CPU prematurely, we skip reducing >> the frequency if the CPU had been busy recently. >> >> This should not be done when the limits of the policy are changed, for >> example due to thermal throttling. We should always get the frequency >> within the new limits as soon as possible. >> >> Trying to fix this by using only one flag, i.e. need_freq_update, can >> lead to a race condition where the flag gets cleared without forcing us >> to change the frequency at least once. And so this patch introduces >> another flag to avoid that race condition. >> >> Fixes: ecd288429126 ("cpufreq: schedutil: Don't set next_freq to UINT_MAX") >> Cc: v4.18+ <stable@vger.kernel.org> # v4.18+ >> Reported-by: Doug Smythies <doug.smythies@gmail.com> >> Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> >> --- >> V2->V3: >> - Updated commit log. >> >> V1->V2: >> - Fixed the race condition using a different flag. >> >> @Doug: I haven't changed the code since you last tested these. Your >> Tested-by tag can be useful while applying the patches. Thanks. Tested-by: Doug Smythies <dsmythies@telus.net> For acpi-cpufreq/schedutil only (which we already know). I tested including Rafael's suggested change. I.E. diff --git a/kernel/sched/cpufreq_schedutil.c b/kernel/sched/cpufreq_schedutil.c index 592ff72..ae3ec77 100644 --- a/kernel/sched/cpufreq_schedutil.c +++ b/kernel/sched/cpufreq_schedutil.c @@ -441,7 +441,7 @@ static void sugov_update_single(struct update_util_data *hook, u64 time, struct sugov_policy *sg_policy = sg_cpu->sg_policy; unsigned long util, max; unsigned int next_f; - bool busy = false; + bool busy; sugov_iowait_boost(sg_cpu, time, flags); sg_cpu->last_update = time; @@ -452,8 +452,7 @@ static void sugov_update_single(struct update_util_data *hook, u64 time, return; /* Limits may have changed, don't skip frequency update */ - if (!sg_policy->need_freq_update) - busy = sugov_cpu_is_busy(sg_cpu); + busy = !sg_policy->need_freq_update && sugov_cpu_is_busy(sg_cpu); util = sugov_get_util(sg_cpu); max = sg_cpu->max; ... Doug
prev parent reply other threads:[~2019-08-03 0:01 UTC|newest] Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-08-02 5:44 Viresh Kumar 2019-08-02 5:44 ` [PATCH V3 2/2] cpufreq: intel_pstate: Implement ->resolve_freq() Viresh Kumar 2019-08-02 9:17 ` Rafael J. Wysocki 2019-08-02 9:28 ` Rafael J. Wysocki 2019-08-03 15:00 ` Doug Smythies 2019-08-05 8:35 ` Rafael J. Wysocki 2019-08-06 4:10 ` Viresh Kumar 2019-08-06 8:05 ` Rafael J. Wysocki 2019-08-02 9:11 ` [PATCH V3 1/2] cpufreq: schedutil: Don't skip freq update when limits change Rafael J. Wysocki 2019-08-03 0:00 ` Doug Smythies [this message]
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='000701d5498e$85bf7b40$913e71c0$@net' \ --to=dsmythies@telus.net \ --cc=doug.smythies@gmail.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-pm@vger.kernel.org \ --cc=mingo@redhat.com \ --cc=peterz@infradead.org \ --cc=rafael@kernel.org \ --cc=rjw@rjwysocki.net \ --cc=stable@vger.kernel.org \ --cc=vincent.guittot@linaro.org \ --cc=viresh.kumar@linaro.org \ --subject='RE: [PATCH V3 1/2] cpufreq: schedutil: Don'\''t skip freq update when limits change' \ /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
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).