Re: [PATCH v1 1/4] thermal: gov_bang_bang: Call __thermal_cdev_update() directly

From: Zhang, Rui
Date: Wed Aug 14 2024 - 02:18:36 EST


On Tue, 2024-08-13 at 16:25 +0200, Rafael J. Wysocki wrote:
> From: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
>
> Instead of clearing the "updated" flag for each cooling device
> affected by the trip point crossing in bang_bang_control() and
> walking all thermal instances to run thermal_cdev_update() for all
> of the affected cooling devices, call __thermal_cdev_update()
> directly for each of them.

with this change, we may invoke thermal_cdev_set_cur_state() for
multiple times instead of one, in one bang_bang_control() run.

So this effectively changes the notifications and statistics.

If this is not a problem, maybe better to mention this change in the
changelog?

thanks,
rui
>
> No intentional functional impact.
>
> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
> ---
>  drivers/thermal/gov_bang_bang.c |    5 +----
>  1 file changed, 1 insertion(+), 4 deletions(-)
>
> Index: linux-pm/drivers/thermal/gov_bang_bang.c
> ===================================================================
> --- linux-pm.orig/drivers/thermal/gov_bang_bang.c
> +++ linux-pm/drivers/thermal/gov_bang_bang.c
> @@ -71,12 +71,9 @@ static void bang_bang_control(struct the
>                 dev_dbg(&instance->cdev->device, "target=%ld\n",
> instance->target);
>  
>                 mutex_lock(&instance->cdev->lock);
> -               instance->cdev->updated = false; /* cdev needs update
> */
> +               __thermal_cdev_update(instance->cdev);
>                 mutex_unlock(&instance->cdev->lock);
>         }
> -
> -       list_for_each_entry(instance, &tz->thermal_instances,
> tz_node)
> -               thermal_cdev_update(instance->cdev);
>  }
>  
>  static struct thermal_governor thermal_gov_bang_bang = {
>
>
>