Re: [PATCH] thermal: intel_powerclamp: Return last requested state as cur_state

From: Rafael J. Wysocki
Date: Thu Feb 02 2023 - 11:44:35 EST


On Wed, Feb 1, 2023 at 10:07 PM Srinivas Pandruvada
<srinivas.pandruvada@xxxxxxxxxxxxxxx> wrote:
>
> When the user is reading cur_state from the thermal cooling device for
> Intel powerclamp device:
> - It returns the idle ratio from Package C-state counters when
> there is active idle injection session.
> - -1, when there is no active idle injection session.
>
> This information is not very useful as the package C-state counters vary
> a lot from read to read. Instead just return the last requested cur_state.
>
> Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@xxxxxxxxxxxxxxx>
> ---
> drivers/thermal/intel/intel_powerclamp.c | 12 +-----------
> 1 file changed, 1 insertion(+), 11 deletions(-)
>
> diff --git a/drivers/thermal/intel/intel_powerclamp.c b/drivers/thermal/intel/intel_powerclamp.c
> index 2f4cbfdf26a0..72a45cf2708c 100644
> --- a/drivers/thermal/intel/intel_powerclamp.c
> +++ b/drivers/thermal/intel/intel_powerclamp.c
> @@ -590,17 +590,7 @@ static int powerclamp_get_max_state(struct thermal_cooling_device *cdev,
> static int powerclamp_get_cur_state(struct thermal_cooling_device *cdev,
> unsigned long *state)
> {
> - if (clamping) {
> - if (poll_pkg_cstate_enable)
> - *state = pkg_cstate_ratio_cur;
> - else
> - *state = set_target_ratio;
> - } else {
> - /* to save power, do not poll idle ratio while not clamping */
> - *state = -1; /* indicates invalid state */
> - }
> -
> - return 0;
> + return set_target_ratio;

*state = set_target_ratio;
return 0;

> }
>
> static int powerclamp_set_cur_state(struct thermal_cooling_device *cdev,
> --

And please rebase it on top of the idle_inject series (which is being
added to my bleeding-edge branch right now).