From: "Rafael J. Wysocki" <rjw@rjwysocki.net>
To: Linux PM <linux-pm@vger.kernel.org>
Cc: Pratyush Yadav <ptyadav@amazon.de>,
LKML <linux-kernel@vger.kernel.org>,
Linux ACPI <linux-acpi@vger.kernel.org>,
Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Subject: [PATCH v2 2/3] ACPI: processor: perflib: Avoid updating frequency QoS unnecessarily
Date: Wed, 28 Dec 2022 22:24:10 +0100 [thread overview]
Message-ID: <4798709.31r3eYUQgx@kreacher> (raw)
In-Reply-To: <12138067.O9o76ZdvQC@kreacher>
From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Modify acpi_processor_get_platform_limit() to avoid updating its
frequency QoS request when the _PPC return value has not changed
by comparing that value to the previous _PPC return value stored in
the performance_platform_limit field of the struct acpi_processor
corresponding to the given CPU.
While at it, do the _PPC return value check against the state count
earlier to avoid setting performance_platform_limit to an invalid value.
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
---
v1 -> v2:
* New patch.
* Contains some changes from the previous [1/2] and a change to reset
performance_platform_limit on QoS request creation.
---
drivers/acpi/processor_perflib.c | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
Index: linux-pm/drivers/acpi/processor_perflib.c
===================================================================
--- linux-pm.orig/drivers/acpi/processor_perflib.c
+++ linux-pm/drivers/acpi/processor_perflib.c
@@ -76,13 +76,16 @@ static int acpi_processor_get_platform_l
index = ppc;
+ if (pr->performance_platform_limit == index ||
+ ppc >= pr->performance->state_count)
+ return 0;
+
pr_debug("CPU %d: _PPC is %d - frequency %s limited\n", pr->id,
index, index ? "is" : "is not");
pr->performance_platform_limit = index;
- if (ppc >= pr->performance->state_count ||
- unlikely(!freq_qos_request_active(&pr->perflib_req)))
+ if (unlikely(!freq_qos_request_active(&pr->perflib_req)))
return 0;
/*
@@ -178,6 +181,13 @@ void acpi_processor_ppc_init(struct cpuf
if (!pr)
continue;
+ /*
+ * Reset performance_platform_limit in case there is a stale
+ * value in it, so as to make it match the "no limit" QoS value
+ * below.
+ */
+ pr->performance_platform_limit = 0;
+
ret = freq_qos_add_request(&policy->constraints,
&pr->perflib_req,
FREQ_QOS_MAX, INT_MAX);
next prev parent reply other threads:[~2022-12-28 21:27 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-12-27 19:51 [PATCH v1 1/2] ACPI: processor: perflib: Use the "no limit" frequency QoS Rafael J. Wysocki
2022-12-27 19:52 ` [PATCH v1 2/2] cpufreq: intel_pstate: Drop ACPI _PSS states table patching Rafael J. Wysocki
2022-12-27 20:40 ` [PATCH v1 1/2] ACPI: processor: perflib: Use the "no limit" frequency QoS srinivas pandruvada
2022-12-28 20:41 ` Rafael J. Wysocki
2022-12-28 14:22 ` Pratyush Yadav
2022-12-28 21:21 ` [PATCH v2 1/3] " Rafael J. Wysocki
2022-12-29 12:58 ` Pratyush Yadav
2022-12-29 19:26 ` Rafael J. Wysocki
2023-01-30 14:17 ` Pratyush Yadav
2023-01-30 14:58 ` Rafael J. Wysocki
2023-01-30 15:23 ` Pratyush Yadav
2023-02-14 13:40 ` srinivas pandruvada
2023-02-14 13:57 ` Rafael J. Wysocki
2023-02-14 14:25 ` srinivas pandruvada
2023-02-14 14:41 ` Rafael J. Wysocki
2022-12-28 21:24 ` Rafael J. Wysocki [this message]
2022-12-28 21:26 ` [PATCH v2 3/3] cpufreq: intel_pstate: Drop ACPI _PSS states table patching Rafael J. Wysocki
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=4798709.31r3eYUQgx@kreacher \
--to=rjw@rjwysocki.net \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=ptyadav@amazon.de \
--cc=srinivas.pandruvada@linux.intel.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.