linux-pm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/10] cpufreq: Migrate users of policy notifiers to QoS requests
@ 2019-07-16  9:48 Viresh Kumar
  2019-07-16  9:48 ` [PATCH 01/10] cpufreq: Add policy create/remove notifiers Viresh Kumar
  2019-07-16 10:06 ` [PATCH 00/10] cpufreq: Migrate users of policy notifiers to QoS requests Rafael J. Wysocki
  0 siblings, 2 replies; 5+ messages in thread
From: Viresh Kumar @ 2019-07-16  9:48 UTC (permalink / raw)
  To: Rafael Wysocki, Amit Daniel Kachhap, Benjamin Herrenschmidt,
	Daniel Lezcano, Eduardo Valentin, Erik Schmauss,
	Greg Kroah-Hartman, Javi Merino, Len Brown, Rafael J. Wysocki,
	Robert Moore, Zhang Rui
  Cc: Viresh Kumar, linux-pm, Vincent Guittot, devel, dri-devel,
	linux-acpi, linux-doc, linux-fbdev, linux-kernel, linuxppc-dev

Hello,

Now that cpufreq core supports taking QoS requests for min/max cpu
frequencies, lets migrate rest of the users to using them instead of the
policy notifiers.

The CPUFREQ_NOTIFY and CPUFREQ_ADJUST events of the policy notifiers are
removed as a result, but we have to add CPUFREQ_CREATE_POLICY and
CPUFREQ_REMOVE_POLICY events to it for the acpi stuff specifically. So
the policy notifiers aren't completely removed.

Boot tested on my x86 PC and ARM hikey board. Nothing looked broken :)

This has already gone through build bot for a few days now.

--
viresh

Viresh Kumar (10):
  cpufreq: Add policy create/remove notifiers
  video: sa1100fb: Remove cpufreq policy notifier
  video: pxafb: Remove cpufreq policy notifier
  arch_topology: Use CPUFREQ_CREATE_POLICY instead of CPUFREQ_NOTIFY
  thermal: cpu_cooling: Switch to QoS requests instead of cpufreq
    notifier
  powerpc: macintosh: Switch to QoS requests instead of cpufreq notifier
  cpufreq: powerpc_cbe: Switch to QoS requests instead of cpufreq
    notifier
  ACPI: cpufreq: Switch to QoS requests instead of cpufreq notifier
  cpufreq: Remove CPUFREQ_ADJUST and CPUFREQ_NOTIFY policy notifier
    events
  Documentation: cpufreq: Update policy notifier documentation

 Documentation/cpu-freq/core.txt            |  16 +--
 drivers/acpi/processor_driver.c            |  44 ++++++++-
 drivers/acpi/processor_perflib.c           | 106 +++++++++-----------
 drivers/acpi/processor_thermal.c           |  81 ++++++++-------
 drivers/base/arch_topology.c               |   2 +-
 drivers/cpufreq/cpufreq.c                  |  51 ++++------
 drivers/cpufreq/ppc_cbe_cpufreq.c          |  19 +++-
 drivers/cpufreq/ppc_cbe_cpufreq.h          |   8 ++
 drivers/cpufreq/ppc_cbe_cpufreq_pmi.c      |  96 +++++++++++-------
 drivers/macintosh/windfarm_cpufreq_clamp.c |  77 ++++++++++-----
 drivers/thermal/cpu_cooling.c              | 110 +++++----------------
 drivers/video/fbdev/pxafb.c                |  21 ----
 drivers/video/fbdev/pxafb.h                |   1 -
 drivers/video/fbdev/sa1100fb.c             |  27 -----
 drivers/video/fbdev/sa1100fb.h             |   1 -
 include/acpi/processor.h                   |  22 +++--
 include/linux/cpufreq.h                    |   4 +-
 17 files changed, 327 insertions(+), 359 deletions(-)

-- 
2.21.0.rc0.269.g1a574e7a288b


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 01/10] cpufreq: Add policy create/remove notifiers
  2019-07-16  9:48 [PATCH 00/10] cpufreq: Migrate users of policy notifiers to QoS requests Viresh Kumar
@ 2019-07-16  9:48 ` Viresh Kumar
  2019-07-16 10:06 ` [PATCH 00/10] cpufreq: Migrate users of policy notifiers to QoS requests Rafael J. Wysocki
  1 sibling, 0 replies; 5+ messages in thread
From: Viresh Kumar @ 2019-07-16  9:48 UTC (permalink / raw)
  To: Rafael Wysocki; +Cc: Viresh Kumar, linux-pm, Vincent Guittot, linux-kernel

This reverts commit f9f41e3ef99ac9d4e91b07634362e393fb929aad.

We have a new use case for policy create/remove notifiers (for
allocating/freeing QoS requests per policy), lets add them back.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
---
 drivers/cpufreq/cpufreq.c | 15 ++++++++++++++-
 include/linux/cpufreq.h   |  2 ++
 2 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
index 4d6043ee7834..8a7eff2a3771 100644
--- a/drivers/cpufreq/cpufreq.c
+++ b/drivers/cpufreq/cpufreq.c
@@ -1268,7 +1268,17 @@ static void cpufreq_policy_free(struct cpufreq_policy *policy)
 				   DEV_PM_QOS_MAX_FREQUENCY);
 	dev_pm_qos_remove_notifier(dev, &policy->nb_min,
 				   DEV_PM_QOS_MIN_FREQUENCY);
-	dev_pm_qos_remove_request(policy->max_freq_req);
+
+	if (policy->max_freq_req) {
+		/*
+		 * CPUFREQ_CREATE_POLICY notification is sent only after
+		 * successfully adding max_freq_req request.
+		 */
+		blocking_notifier_call_chain(&cpufreq_policy_notifier_list,
+					     CPUFREQ_REMOVE_POLICY, policy);
+		dev_pm_qos_remove_request(policy->max_freq_req);
+	}
+
 	dev_pm_qos_remove_request(policy->min_freq_req);
 	kfree(policy->min_freq_req);
 
@@ -1393,6 +1403,9 @@ static int cpufreq_online(unsigned int cpu)
 				ret);
 			goto out_destroy_policy;
 		}
+
+		blocking_notifier_call_chain(&cpufreq_policy_notifier_list,
+				CPUFREQ_CREATE_POLICY, policy);
 	}
 
 	if (cpufreq_driver->get && has_target()) {
diff --git a/include/linux/cpufreq.h b/include/linux/cpufreq.h
index d757a56a74dc..e28c8af697d2 100644
--- a/include/linux/cpufreq.h
+++ b/include/linux/cpufreq.h
@@ -458,6 +458,8 @@ static inline void cpufreq_resume(void) {}
 /* Policy Notifiers  */
 #define CPUFREQ_ADJUST			(0)
 #define CPUFREQ_NOTIFY			(1)
+#define CPUFREQ_CREATE_POLICY		(2)
+#define CPUFREQ_REMOVE_POLICY		(3)
 
 #ifdef CONFIG_CPU_FREQ
 int cpufreq_register_notifier(struct notifier_block *nb, unsigned int list);
-- 
2.21.0.rc0.269.g1a574e7a288b


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH 00/10] cpufreq: Migrate users of policy notifiers to QoS requests
  2019-07-16  9:48 [PATCH 00/10] cpufreq: Migrate users of policy notifiers to QoS requests Viresh Kumar
  2019-07-16  9:48 ` [PATCH 01/10] cpufreq: Add policy create/remove notifiers Viresh Kumar
@ 2019-07-16 10:06 ` Rafael J. Wysocki
  2019-07-16 10:14   ` Viresh Kumar
  1 sibling, 1 reply; 5+ messages in thread
From: Rafael J. Wysocki @ 2019-07-16 10:06 UTC (permalink / raw)
  To: Viresh Kumar
  Cc: Rafael Wysocki, Amit Daniel Kachhap, Benjamin Herrenschmidt,
	Daniel Lezcano, Eduardo Valentin, Erik Schmauss,
	Greg Kroah-Hartman, Javi Merino, Len Brown, Rafael J. Wysocki,
	Robert Moore, Zhang Rui, Linux PM, Vincent Guittot,
	open list:ACPI COMPONENT ARCHITECTURE (ACPICA),
	dri-devel, ACPI Devel Maling List, open list:DOCUMENTATION,
	open list:FRAMEBUFFER LAYER, Linux Kernel Mailing List,
	linuxppc-dev

On Tue, Jul 16, 2019 at 11:49 AM Viresh Kumar <viresh.kumar@linaro.org> wrote:
>
> Hello,
>
> Now that cpufreq core supports taking QoS requests for min/max cpu
> frequencies, lets migrate rest of the users to using them instead of the
> policy notifiers.

Technically, this still is linux-next only. :-)

> The CPUFREQ_NOTIFY and CPUFREQ_ADJUST events of the policy notifiers are
> removed as a result, but we have to add CPUFREQ_CREATE_POLICY and
> CPUFREQ_REMOVE_POLICY events to it for the acpi stuff specifically. So
> the policy notifiers aren't completely removed.

That's not entirely accurate, because arch_topology is going to use
CPUFREQ_CREATE_POLICY now too.

> Boot tested on my x86 PC and ARM hikey board. Nothing looked broken :)
>
> This has already gone through build bot for a few days now.

So I'd prefer patches [5-8] to go right after the first one and then
do the cleanups on top of that, as somebody may want to backport the
essential changes without the cleanups.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 00/10] cpufreq: Migrate users of policy notifiers to QoS requests
  2019-07-16 10:06 ` [PATCH 00/10] cpufreq: Migrate users of policy notifiers to QoS requests Rafael J. Wysocki
@ 2019-07-16 10:14   ` Viresh Kumar
  2019-07-16 10:27     ` Rafael J. Wysocki
  0 siblings, 1 reply; 5+ messages in thread
From: Viresh Kumar @ 2019-07-16 10:14 UTC (permalink / raw)
  To: Rafael J. Wysocki
  Cc: Rafael Wysocki, Amit Daniel Kachhap, Benjamin Herrenschmidt,
	Daniel Lezcano, Eduardo Valentin, Erik Schmauss,
	Greg Kroah-Hartman, Javi Merino, Len Brown, Robert Moore,
	Zhang Rui, Linux PM, Vincent Guittot,
	open list:ACPI COMPONENT ARCHITECTURE (ACPICA),
	dri-devel, ACPI Devel Maling List, open list:DOCUMENTATION,
	open list:FRAMEBUFFER LAYER, Linux Kernel Mailing List,
	linuxppc-dev

On 16-07-19, 12:06, Rafael J. Wysocki wrote:
> On Tue, Jul 16, 2019 at 11:49 AM Viresh Kumar <viresh.kumar@linaro.org> wrote:
> >
> > Hello,
> >
> > Now that cpufreq core supports taking QoS requests for min/max cpu
> > frequencies, lets migrate rest of the users to using them instead of the
> > policy notifiers.
> 
> Technically, this still is linux-next only. :-)

True :)

> > The CPUFREQ_NOTIFY and CPUFREQ_ADJUST events of the policy notifiers are
> > removed as a result, but we have to add CPUFREQ_CREATE_POLICY and
> > CPUFREQ_REMOVE_POLICY events to it for the acpi stuff specifically. So
> > the policy notifiers aren't completely removed.
> 
> That's not entirely accurate, because arch_topology is going to use
> CPUFREQ_CREATE_POLICY now too.

Yeah, I thought about that while writing this patchset and
coverletter. But had it not been required for ACPI, I would have done
it differently for the arch-topology code. Maybe direct calling of
arch-topology routine from cpufreq core. I wanted to get rid of the
policy notifiers completely but I couldn't find a better way of doing
it for ACPI stuff.

> > Boot tested on my x86 PC and ARM hikey board. Nothing looked broken :)
> >
> > This has already gone through build bot for a few days now.
> 
> So I'd prefer patches [5-8] to go right after the first one and then
> do the cleanups on top of that, as somebody may want to backport the
> essential changes without the cleanups.

In the exceptional case where nobody finds anything wrong with the
patches (highly unlikely), do you want me to resend with reordering or
you can reorder them while applying? There are no dependencies between
those patches anyway.

--
viresh

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 00/10] cpufreq: Migrate users of policy notifiers to QoS requests
  2019-07-16 10:14   ` Viresh Kumar
@ 2019-07-16 10:27     ` Rafael J. Wysocki
  0 siblings, 0 replies; 5+ messages in thread
From: Rafael J. Wysocki @ 2019-07-16 10:27 UTC (permalink / raw)
  To: Viresh Kumar
  Cc: Rafael J. Wysocki, Rafael Wysocki, Amit Daniel Kachhap,
	Benjamin Herrenschmidt, Daniel Lezcano, Eduardo Valentin,
	Erik Schmauss, Greg Kroah-Hartman, Javi Merino, Len Brown,
	Robert Moore, Zhang Rui, Linux PM, Vincent Guittot,
	open list:ACPI COMPONENT ARCHITECTURE (ACPICA),
	dri-devel, ACPI Devel Maling List, open list:DOCUMENTATION,
	open list:FRAMEBUFFER LAYER, Linux Kernel Mailing List,
	linuxppc-dev

On Tue, Jul 16, 2019 at 12:14 PM Viresh Kumar <viresh.kumar@linaro.org> wrote:
>
> On 16-07-19, 12:06, Rafael J. Wysocki wrote:
> > On Tue, Jul 16, 2019 at 11:49 AM Viresh Kumar <viresh.kumar@linaro.org> wrote:
> > >
> > > Hello,
> > >
> > > Now that cpufreq core supports taking QoS requests for min/max cpu
> > > frequencies, lets migrate rest of the users to using them instead of the
> > > policy notifiers.
> >
> > Technically, this still is linux-next only. :-)
>
> True :)
>
> > > The CPUFREQ_NOTIFY and CPUFREQ_ADJUST events of the policy notifiers are
> > > removed as a result, but we have to add CPUFREQ_CREATE_POLICY and
> > > CPUFREQ_REMOVE_POLICY events to it for the acpi stuff specifically. So
> > > the policy notifiers aren't completely removed.
> >
> > That's not entirely accurate, because arch_topology is going to use
> > CPUFREQ_CREATE_POLICY now too.
>
> Yeah, I thought about that while writing this patchset and
> coverletter. But had it not been required for ACPI, I would have done
> it differently for the arch-topology code. Maybe direct calling of
> arch-topology routine from cpufreq core. I wanted to get rid of the
> policy notifiers completely but I couldn't find a better way of doing
> it for ACPI stuff.
>
> > > Boot tested on my x86 PC and ARM hikey board. Nothing looked broken :)
> > >
> > > This has already gone through build bot for a few days now.
> >
> > So I'd prefer patches [5-8] to go right after the first one and then
> > do the cleanups on top of that, as somebody may want to backport the
> > essential changes without the cleanups.
>
> In the exceptional case where nobody finds anything wrong with the
> patches (highly unlikely), do you want me to resend with reordering or
> you can reorder them while applying? There are no dependencies between
> those patches anyway.

Please resend the reordered set when the merge window closes.

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2019-07-16 10:28 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-07-16  9:48 [PATCH 00/10] cpufreq: Migrate users of policy notifiers to QoS requests Viresh Kumar
2019-07-16  9:48 ` [PATCH 01/10] cpufreq: Add policy create/remove notifiers Viresh Kumar
2019-07-16 10:06 ` [PATCH 00/10] cpufreq: Migrate users of policy notifiers to QoS requests Rafael J. Wysocki
2019-07-16 10:14   ` Viresh Kumar
2019-07-16 10:27     ` Rafael J. Wysocki

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).