[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAJZ5v0jaU=YY+A2qQYavh4iHbhYUAZy-ShZa+cKZ9V5B6Qdajw@mail.gmail.com>
Date: Wed, 14 Aug 2024 19:34:00 +0200
From: "Rafael J. Wysocki" <rafael@...nel.org>
To: "Zhang, Rui" <rui.zhang@...el.com>
Cc: "linux-pm@...r.kernel.org" <linux-pm@...r.kernel.org>, "rjw@...ysocki.net" <rjw@...ysocki.net>,
"lukasz.luba@....com" <lukasz.luba@....com>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"daniel.lezcano@...aro.org" <daniel.lezcano@...aro.org>, "peter@...e.net" <peter@...e.net>
Subject: Re: [PATCH v1 1/4] thermal: gov_bang_bang: Call __thermal_cdev_update()
directly
On Wed, Aug 14, 2024 at 8:18 AM Zhang, Rui <rui.zhang@...el.com> wrote:
>
> On Tue, 2024-08-13 at 16:25 +0200, Rafael J. Wysocki wrote:
> > From: Rafael J. Wysocki <rafael.j.wysocki@...el.com>
> >
> > 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.
No, this cannot happen AFAICS because one cooling device cannot be
bound to the same trip point more than once.
Since bang_bang_control() only checks thermal instances for one trip
point, all cooling devices pointed to by them are guaranteed to be
different.
> 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@...el.com>
> > ---
> > 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 = {
> >
> >
> >
>
Powered by blists - more mailing lists