From: "Rafael J. Wysocki" <rjw@rjwysocki.net>
To: Linux PM <linux-pm@vger.kernel.org>
Cc: LKML <linux-kernel@vger.kernel.org>,
Linux ACPI <linux-acpi@vger.kernel.org>,
Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>,
Zhang Rui <rui.zhang@intel.com>,
Daniel Lezcano <daniel.lezcano@linaro.org>,
Lukasz Luba <lukasz.luba@arm.com>,
"Rafael J. Wysocki" <rafael@kernel.org>
Subject: [PATCH v1 06/13] thermal: gov_fair_share: Rearrange get_trip_level()
Date: Thu, 21 Sep 2023 19:54:02 +0200 [thread overview]
Message-ID: <1882755.CQOukoFCf9@kreacher> (raw)
In-Reply-To: <1957441.PYKUYFuaPT@kreacher>
From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Make get_trip_level() access the thermal zone's trip table directly
instead of using __thermal_zone_get_trip() which adds overhead related
to the unnecessary bounds checking and copying the trip point data.
Also rearrange the code in it to make it somewhat easier to follow.
The general functionality is not expected to be changed.
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
---
drivers/thermal/gov_fair_share.c | 22 ++++++++++------------
1 file changed, 10 insertions(+), 12 deletions(-)
Index: linux-pm/drivers/thermal/gov_fair_share.c
===================================================================
--- linux-pm.orig/drivers/thermal/gov_fair_share.c
+++ linux-pm/drivers/thermal/gov_fair_share.c
@@ -21,23 +21,21 @@
*/
static int get_trip_level(struct thermal_zone_device *tz)
{
- struct thermal_trip trip;
- int count;
+ const struct thermal_trip *trip = tz->trips;
+ int i;
- for (count = 0; count < tz->num_trips; count++) {
- __thermal_zone_get_trip(tz, count, &trip);
- if (tz->temperature < trip.temperature)
+ if (tz->temperature < trip->temperature)
+ return 0;
+
+ for (i = 0; i < tz->num_trips - 1; i++) {
+ trip++;
+ if (tz->temperature < trip->temperature)
break;
}
- /*
- * count > 0 only if temperature is greater than first trip
- * point, in which case, trip_point = count - 1
- */
- if (count > 0)
- trace_thermal_zone_trip(tz, count - 1, trip.type);
+ trace_thermal_zone_trip(tz, i, tz->trips[i].type);
- return count;
+ return i;
}
static long get_target_state(struct thermal_zone_device *tz,
next prev parent reply other threads:[~2023-09-21 18:10 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-21 17:46 [PATCH v1 00/13] thermal: ACPI: More ACPI thermal improvements and modification of thermal instances Rafael J. Wysocki
2023-09-21 17:48 ` [PATCH v1 01/13] ACPI: thermal: Add device list to struct acpi_thermal_trip Rafael J. Wysocki
2023-09-26 15:17 ` Daniel Lezcano
2023-09-21 17:49 ` [PATCH v1 02/13] ACPI: thermal: Collapse trip devices update functions Rafael J. Wysocki
2023-09-26 17:18 ` Daniel Lezcano
2023-09-26 17:56 ` Rafael J. Wysocki
2023-09-26 18:04 ` Rafael J. Wysocki
2023-09-26 21:16 ` Daniel Lezcano
2023-09-26 21:33 ` Daniel Lezcano
2023-09-21 17:50 ` [PATCH v1 03/13] ACPI: thermal: Collapse trip devices update function wrappers Rafael J. Wysocki
2023-09-27 9:15 ` Daniel Lezcano
2023-09-21 17:51 ` [PATCH v1 04/13] ACPI: thermal: Merge trip initialization functions Rafael J. Wysocki
2023-09-27 11:58 ` Daniel Lezcano
2023-09-21 17:52 ` [PATCH v1 05/13] thermal: core: Store trip pointer in struct thermal_instance Rafael J. Wysocki
2023-09-27 14:56 ` Daniel Lezcano
2023-09-21 17:54 ` Rafael J. Wysocki [this message]
2023-09-27 15:00 ` [PATCH v1 06/13] thermal: gov_fair_share: Rearrange get_trip_level() Daniel Lezcano
2023-09-27 15:06 ` Rafael J. Wysocki
2023-09-27 15:37 ` Daniel Lezcano
2023-09-27 16:09 ` Rafael J. Wysocki
2023-09-21 17:55 ` [PATCH v1 07/13] thermal: gov_power_allocator: Use trip pointers instead of trip indices Rafael J. Wysocki
2023-09-27 15:10 ` Daniel Lezcano
2023-09-27 15:27 ` Rafael J. Wysocki
2023-09-27 15:46 ` Daniel Lezcano
2023-09-27 16:14 ` Rafael J. Wysocki
2023-09-21 17:56 ` [PATCH v1 08/13] thermal: gov_step_wise: Fold update_passive_instance() into its caller Rafael J. Wysocki
2023-09-21 17:58 ` [PATCH v1 09/13] thermal: core: Rename trip point index function arguments in governors Rafael J. Wysocki
2023-09-21 18:01 ` [PATCH v1 10/13] thermal: core: Allow trip pointers to be used for cooling device binding Rafael J. Wysocki
2023-09-28 7:10 ` Daniel Lezcano
2023-09-28 10:38 ` Rafael J. Wysocki
2023-09-28 13:31 ` Daniel Lezcano
2023-09-21 18:02 ` [PATCH v1 11/13] ACPI: thermal: Do not use trip indices " Rafael J. Wysocki
2023-09-28 7:24 ` Daniel Lezcano
2023-09-21 18:04 ` [PATCH v1 12/13] ACPI: thermal: Drop critical_valid and hot_valid trip flags Rafael J. Wysocki
2023-09-28 7:25 ` Daniel Lezcano
2023-09-21 18:06 ` [PATCH v1 13/13] ACPI: thermal: Rename structure fields holding temperature in deci-Kelvin Rafael J. Wysocki
2023-09-28 7:28 ` Daniel Lezcano
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=1882755.CQOukoFCf9@kreacher \
--to=rjw@rjwysocki.net \
--cc=daniel.lezcano@linaro.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=lukasz.luba@arm.com \
--cc=rafael@kernel.org \
--cc=rui.zhang@intel.com \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox