From: Steve Muckle <steve.muckle@linaro.org>
To: "Rafael J. Wysocki" <rjw@rjwysocki.net>,
Linux PM list <linux-pm@vger.kernel.org>
Cc: Juri Lelli <juri.lelli@arm.com>,
ACPI Devel Maling List <linux-acpi@vger.kernel.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Peter Zijlstra <peterz@infradead.org>,
Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>,
Viresh Kumar <viresh.kumar@linaro.org>,
Vincent Guittot <vincent.guittot@linaro.org>,
Michael Turquette <mturquette@baylibre.com>,
Ingo Molnar <mingo@kernel.org>
Subject: Re: [PATCH v2 6/10] cpufreq: Support for fast frequency switching
Date: Fri, 4 Mar 2016 14:18:25 -0800 [thread overview]
Message-ID: <56DA09B1.4010005@linaro.org> (raw)
In-Reply-To: <15684081.T4iOMUSHCY@vostro.rjw.lan>
On 03/03/2016 07:07 PM, Rafael J. Wysocki wrote:
> +void cpufreq_driver_fast_switch(struct cpufreq_policy *policy,
> + unsigned int target_freq, unsigned int relation)
> +{
> + unsigned int freq;
> +
> + freq = cpufreq_driver->fast_switch(policy, target_freq, relation);
> + if (freq != CPUFREQ_ENTRY_INVALID) {
> + policy->cur = freq;
> + trace_cpu_frequency(freq, smp_processor_id());
> + }
> +}
Even if there are platforms which may change the CPU frequency behind
cpufreq's back, breaking the transition notifiers, I'm worried about the
addition of an interface which itself breaks them. The platforms which
do change CPU frequency on their own have probably evolved to live with
or work around this behavior. As other platforms migrate to fast
frequency switching they might be surprised when things don't work as
advertised.
I'm not sure what the easiest way to deal with this is. I see the
transition notifiers are the srcu type, which I understand to be
blocking. Going through the tree and reworking everyone's callbacks and
changing the type to atomic is obviously not realistic.
How about modifying cpufreq_register_notifier to return an error if the
driver has a fast_switch callback installed and an attempt to register a
transition notifier is made?
In the future, perhaps an additional atomic transition callback type can
be added, which platform/driver owners can switch to if they wish to use
fast transitions with their platform.
thanks,
Steve
next prev parent reply other threads:[~2016-03-04 22:18 UTC|newest]
Thread overview: 158+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-02 1:56 [PATCH 0/6] cpufreq: schedutil governor Rafael J. Wysocki
2016-03-02 2:04 ` [PATCH 1/6] cpufreq: Reduce cpufreq_update_util() overhead a bit Rafael J. Wysocki
2016-03-03 5:48 ` Viresh Kumar
2016-03-03 11:47 ` Juri Lelli
2016-03-03 13:04 ` Peter Zijlstra
2016-03-02 2:05 ` [PATCH 2/6][Resend] cpufreq: acpi-cpufreq: Make read and write operations more efficient Rafael J. Wysocki
2016-03-02 2:08 ` [PATCH 3/6] cpufreq: governor: New data type for management part of dbs_data Rafael J. Wysocki
2016-03-03 5:53 ` Viresh Kumar
2016-03-03 19:26 ` Rafael J. Wysocki
2016-03-04 5:49 ` Viresh Kumar
2016-03-02 2:10 ` [PATCH 4/6] cpufreq: governor: Move abstract gov_tunables code to a seperate file Rafael J. Wysocki
2016-03-03 6:03 ` Viresh Kumar
2016-03-02 2:12 ` [PATCH 5/6] cpufreq: Support for fast frequency switching Rafael J. Wysocki
2016-03-03 6:00 ` Viresh Kumar
2016-03-04 2:15 ` Rafael J. Wysocki
2016-03-03 11:16 ` Peter Zijlstra
2016-03-03 20:56 ` Rafael J. Wysocki
2016-03-03 21:12 ` Peter Zijlstra
2016-03-03 11:18 ` Peter Zijlstra
2016-03-03 19:39 ` Rafael J. Wysocki
2016-03-02 2:27 ` [PATCH 6/6] cpufreq: schedutil: New governor based on scheduler utilization data Rafael J. Wysocki
2016-03-02 17:10 ` Vincent Guittot
2016-03-02 17:58 ` Rafael J. Wysocki
2016-03-02 22:49 ` Rafael J. Wysocki
2016-03-03 12:20 ` Peter Zijlstra
2016-03-03 12:32 ` Juri Lelli
2016-03-03 16:24 ` Rafael J. Wysocki
2016-03-03 16:37 ` Peter Zijlstra
2016-03-03 16:47 ` Peter Zijlstra
2016-03-04 1:14 ` Rafael J. Wysocki
2016-03-03 16:55 ` Juri Lelli
2016-03-03 16:56 ` Peter Zijlstra
2016-03-03 17:14 ` Juri Lelli
2016-03-03 14:01 ` Vincent Guittot
2016-03-03 15:38 ` Peter Zijlstra
2016-03-03 16:28 ` Peter Zijlstra
2016-03-03 16:42 ` Peter Zijlstra
2016-03-03 17:28 ` Dietmar Eggemann
2016-03-03 18:26 ` Peter Zijlstra
2016-03-03 19:14 ` Dietmar Eggemann
2016-03-08 13:09 ` Peter Zijlstra
2016-03-03 18:58 ` Rafael J. Wysocki
2016-03-03 13:07 ` Vincent Guittot
2016-03-03 20:06 ` Steve Muckle
2016-03-03 20:20 ` Rafael J. Wysocki
2016-03-03 21:37 ` Steve Muckle
2016-03-07 2:41 ` Rafael J. Wysocki
2016-03-08 11:27 ` Peter Zijlstra
2016-03-08 18:00 ` Rafael J. Wysocki
2016-03-08 19:26 ` Peter Zijlstra
2016-03-08 20:05 ` Rafael J. Wysocki
2016-03-09 10:15 ` Juri Lelli
2016-03-09 23:41 ` Rafael J. Wysocki
2016-03-10 4:30 ` Juri Lelli
2016-03-10 21:01 ` Rafael J. Wysocki
2016-03-10 23:19 ` Michael Turquette
2016-03-09 16:39 ` Peter Zijlstra
2016-03-09 23:28 ` Rafael J. Wysocki
2016-03-10 3:44 ` Vincent Guittot
2016-03-10 10:07 ` Peter Zijlstra
2016-03-10 10:26 ` Vincent Guittot
[not found] ` <CAKfTPtCbjgbJn+68NJPCnmPFtcHD0wGmZRYaw37zSqPXNpo_Uw@mail.gmail.com>
2016-03-10 10:30 ` Peter Zijlstra
2016-03-10 10:56 ` Peter Zijlstra
2016-03-10 22:28 ` Rafael J. Wysocki
2016-03-10 8:43 ` Peter Zijlstra
2016-03-04 2:56 ` [PATCH v2 0/10] cpufreq: schedutil governor Rafael J. Wysocki
2016-03-04 2:58 ` [PATCH v2 1/10] cpufreq: Reduce cpufreq_update_util() overhead a bit Rafael J. Wysocki
2016-03-09 12:39 ` Peter Zijlstra
2016-03-09 14:17 ` Rafael J. Wysocki
2016-03-09 15:29 ` Peter Zijlstra
2016-03-09 21:35 ` Rafael J. Wysocki
2016-03-10 9:19 ` Peter Zijlstra
2016-03-04 2:59 ` [PATCH v2 2/10][Resend] cpufreq: acpi-cpufreq: Make read and write operations more efficient Rafael J. Wysocki
2016-03-04 3:01 ` [PATCH v2 3/10] cpufreq: governor: New data type for management part of dbs_data Rafael J. Wysocki
2016-03-04 5:52 ` Viresh Kumar
2016-03-04 3:03 ` [PATCH v2 4/10] cpufreq: governor: Move abstract gov_attr_set code to seperate file Rafael J. Wysocki
2016-03-04 5:52 ` Viresh Kumar
2016-03-04 3:05 ` [PATCH v2 5/10] cpufreq: Move governor attribute set headers to cpufreq.h Rafael J. Wysocki
2016-03-04 5:53 ` Viresh Kumar
2016-03-04 3:07 ` [PATCH v2 6/10] cpufreq: Support for fast frequency switching Rafael J. Wysocki
2016-03-04 22:18 ` Steve Muckle [this message]
2016-03-04 22:32 ` Rafael J. Wysocki
2016-03-04 22:40 ` Rafael J. Wysocki
2016-03-04 23:18 ` Rafael J. Wysocki
2016-03-04 23:56 ` Steve Muckle
2016-03-05 0:18 ` Rafael J. Wysocki
2016-03-05 11:58 ` Ingo Molnar
2016-03-05 16:49 ` Peter Zijlstra
2016-03-06 2:17 ` Rafael J. Wysocki
2016-03-07 8:00 ` Peter Zijlstra
2016-03-07 13:15 ` Rafael J. Wysocki
2016-03-07 13:32 ` Peter Zijlstra
2016-03-07 13:42 ` Rafael J. Wysocki
2016-03-04 22:58 ` Rafael J. Wysocki
2016-03-04 23:59 ` Steve Muckle
2016-03-04 3:12 ` [PATCH v2 7/10] cpufreq: Rework the scheduler hooks for triggering updates Rafael J. Wysocki
2016-03-04 3:14 ` [PATCH v2 8/10] cpufreq: Move scheduler-related code to the sched directory Rafael J. Wysocki
2016-03-04 3:18 ` [PATCH v2 9/10] cpufreq: sched: Re-introduce cpufreq_update_util() Rafael J. Wysocki
2016-03-04 10:50 ` Juri Lelli
2016-03-04 12:58 ` Rafael J. Wysocki
2016-03-04 13:30 ` [PATCH v3 " Rafael J. Wysocki
2016-03-04 21:21 ` Steve Muckle
2016-03-04 21:27 ` Rafael J. Wysocki
2016-03-04 21:36 ` Rafael J. Wysocki
2016-03-04 3:35 ` [PATCH v2 10/10] cpufreq: schedutil: New governor based on scheduler utilization data Rafael J. Wysocki
2016-03-04 11:26 ` Juri Lelli
2016-03-04 13:19 ` Rafael J. Wysocki
2016-03-04 15:56 ` Srinivas Pandruvada
2016-03-08 2:23 ` [PATCH v3 0/7] cpufreq: schedutil governor Rafael J. Wysocki
2016-03-08 2:25 ` [PATCH v3 1/7][Resend] cpufreq: Rework the scheduler hooks for triggering updates Rafael J. Wysocki
2016-03-09 13:41 ` Peter Zijlstra
2016-03-09 14:02 ` Rafael J. Wysocki
2016-03-08 2:26 ` [PATCH v3 2/7][Resend] cpufreq: Move scheduler-related code to the sched directory Rafael J. Wysocki
2016-03-08 2:28 ` [PATCH v3 3/7][Resend] cpufreq: governor: New data type for management part of dbs_data Rafael J. Wysocki
2016-03-08 2:29 ` [PATCH v3 4/7][Resend] cpufreq: governor: Move abstract gov_attr_set code to seperate file Rafael J. Wysocki
2016-03-08 2:38 ` [PATCH v3 5/7] cpufreq: Support for fast frequency switching Rafael J. Wysocki
2016-03-08 2:41 ` [PATCH v3 6/7] cpufreq: sched: Re-introduce cpufreq_update_util() Rafael J. Wysocki
2016-03-08 2:50 ` [PATCH v3 7/7] cpufreq: schedutil: New governor based on scheduler utilization data Rafael J. Wysocki
2016-03-16 14:41 ` [PATCH v4 0/7] cpufreq: schedutil governor Rafael J. Wysocki
2016-03-16 14:43 ` [PATCH v4 1/7] cpufreq: sched: Helpers to add and remove update_util hooks Rafael J. Wysocki
2016-03-16 14:44 ` [PATCH v4 2/7] cpufreq: governor: New data type for management part of dbs_data Rafael J. Wysocki
2016-03-16 14:45 ` [PATCH v4 3/7] cpufreq: governor: Move abstract gov_attr_set code to seperate file Rafael J. Wysocki
2016-03-16 14:46 ` [PATCH v4 4/7] cpufreq: Move governor attribute set headers to cpufreq.h Rafael J. Wysocki
2016-03-16 14:47 ` [PATCH v4 5/7] cpufreq: Move governor symbols " Rafael J. Wysocki
2016-03-16 14:52 ` [PATCH v4 6/7] cpufreq: Support for fast frequency switching Rafael J. Wysocki
2016-03-16 15:35 ` Peter Zijlstra
2016-03-16 16:58 ` Rafael J. Wysocki
2016-03-16 15:43 ` Peter Zijlstra
2016-03-16 16:58 ` Rafael J. Wysocki
2016-03-16 14:59 ` [PATCH v4 7/7] cpufreq: schedutil: New governor based on scheduler utilization data Rafael J. Wysocki
2016-03-16 17:35 ` Peter Zijlstra
2016-03-16 21:42 ` Rafael J. Wysocki
2016-03-16 17:36 ` Peter Zijlstra
2016-03-16 21:34 ` Rafael J. Wysocki
2016-03-16 17:52 ` Peter Zijlstra
2016-03-16 21:38 ` Rafael J. Wysocki
2016-03-16 22:39 ` Peter Zijlstra
2016-03-16 17:53 ` Peter Zijlstra
2016-03-16 21:48 ` Rafael J. Wysocki
2016-03-16 18:14 ` Peter Zijlstra
2016-03-16 21:38 ` Rafael J. Wysocki
2016-03-16 22:40 ` Peter Zijlstra
2016-03-16 22:53 ` Rafael J. Wysocki
2016-03-16 15:27 ` [PATCH v4 0/7] cpufreq: schedutil governor Peter Zijlstra
2016-03-16 16:20 ` Rafael J. Wysocki
2016-03-16 23:51 ` [PATCH v5 6/7][Update] cpufreq: Support for fast frequency switching Rafael J. Wysocki
2016-03-17 11:35 ` Juri Lelli
2016-03-17 11:40 ` Peter Zijlstra
2016-03-17 11:48 ` Juri Lelli
2016-03-17 12:53 ` Rafael J. Wysocki
2016-03-17 0:01 ` [PATCH v5 7/7][Update] cpufreq: schedutil: New governor based on scheduler utilization data Rafael J. Wysocki
2016-03-17 11:30 ` Juri Lelli
2016-03-17 12:54 ` Rafael J. Wysocki
2016-03-17 11:36 ` Peter Zijlstra
2016-03-17 12:54 ` Rafael J. Wysocki
2016-03-17 15:54 ` [PATCH v6 6/7][Update] cpufreq: Support for fast frequency switching Rafael J. Wysocki
2016-03-17 16:01 ` [PATCH v6 7/7][Update] cpufreq: schedutil: New governor based on scheduler utilization data Rafael J. Wysocki
2016-03-18 12:34 ` Patrick Bellasi
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=56DA09B1.4010005@linaro.org \
--to=steve.muckle@linaro.org \
--cc=juri.lelli@arm.com \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=mturquette@baylibre.com \
--cc=peterz@infradead.org \
--cc=rjw@rjwysocki.net \
--cc=srinivas.pandruvada@linux.intel.com \
--cc=vincent.guittot@linaro.org \
--cc=viresh.kumar@linaro.org \
/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 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).