mbox series

[0/8] Finish thermal zone structure encapsulation

Message ID 20230525140135.3589917-1-daniel.lezcano@linaro.org (mailing list archive)
Headers show
Series Finish thermal zone structure encapsulation | expand

Message

Daniel Lezcano May 25, 2023, 2:01 p.m. UTC
The series are the last changes to self-encapsulate the thermal zone device
structure in order to protect wild accesses to the thermal zone device
internals, especially the trip points and the locks.

Meanwhile the latest changes, a new driver has come via the network tree which
directly accesses the thermal zone device structure information and uses the
old thermal_zone_device_register function. The first patch does the change to
use the accessor and the new registering function. It is expected to have the
changes to go through the thermal tree along with the other patches.

The second patch adds a macro to warn at compilation time if the
thermal_core.h is included in a file not belonging to the thermal core
code. One warning will happen with the nvidia drivers but this is in
the way to be solved.

The third patch reorders the headers inclusion in the core code.

The fourth patch provides an API to update the thermal trips of a
thermal zone. This function takes care of the locking and the thermal
zone update.

The next patches makes the int340x drivers to use the thermal trip
update above and the different accessors for thermal zone structure.

Finally the last patch moves the thermal zone device structure from
the exported thermal.h header to the thermal core private header.

Daniel Lezcano (8):
  net/mlx5: Update the driver with the recent thermal changes
  thermal/core: Hardening the self-encapsulation
  thermal/core: Reorder the headers inclusion
  thermal/core: Update the generic trip points
  thermal/drivers/int3400: Use thermal zone device wrappers
  thermal/drivers/int340x: Do not check the thermal zone state
  thermal/drivers/int340x: Use thermal zone device trip update
  thermal/core: Move the thermal zone structure to the private core
    header

 .../net/ethernet/mellanox/mlx5/core/thermal.c | 15 ++--
 drivers/thermal/gov_bang_bang.c               |  1 +
 drivers/thermal/gov_fair_share.c              |  1 +
 drivers/thermal/gov_power_allocator.c         |  7 +-
 drivers/thermal/gov_step_wise.c               |  1 +
 drivers/thermal/gov_user_space.c              |  1 +
 .../intel/int340x_thermal/int3400_thermal.c   | 44 +++++-----
 .../int340x_thermal/int340x_thermal_zone.c    | 17 ++--
 drivers/thermal/thermal_acpi.c                |  1 +
 drivers/thermal/thermal_core.c                | 47 +++++------
 drivers/thermal/thermal_core.h                | 82 +++++++++++++++++++
 drivers/thermal/thermal_helpers.c             |  1 +
 drivers/thermal/thermal_hwmon.c               |  1 +
 drivers/thermal/thermal_netlink.c             |  1 +
 drivers/thermal/thermal_of.c                  |  1 +
 drivers/thermal/thermal_sysfs.c               |  1 +
 drivers/thermal/thermal_trip.c                | 79 ++++++++++++++++++
 include/linux/thermal.h                       | 79 +-----------------
 18 files changed, 241 insertions(+), 139 deletions(-)

Comments

Daniel Lezcano June 13, 2023, 2:12 p.m. UTC | #1
Hi Rafael,

On 25/05/2023 16:01, Daniel Lezcano wrote:
> The series are the last changes to self-encapsulate the thermal zone device
> structure in order to protect wild accesses to the thermal zone device
> internals, especially the trip points and the locks.
> 
> Meanwhile the latest changes, a new driver has come via the network tree which
> directly accesses the thermal zone device structure information and uses the
> old thermal_zone_device_register function. The first patch does the change to
> use the accessor and the new registering function. It is expected to have the
> changes to go through the thermal tree along with the other patches.
> 
> The second patch adds a macro to warn at compilation time if the
> thermal_core.h is included in a file not belonging to the thermal core
> code. One warning will happen with the nvidia drivers but this is in
> the way to be solved.
> 
> The third patch reorders the headers inclusion in the core code.
> 
> The fourth patch provides an API to update the thermal trips of a
> thermal zone. This function takes care of the locking and the thermal
> zone update.
> 
> The next patches makes the int340x drivers to use the thermal trip
> update above and the different accessors for thermal zone structure.
> 
> Finally the last patch moves the thermal zone device structure from
> the exported thermal.h header to the thermal core private header.

I think we are all pretty busy for this cycle and that series did not 
raised any comments (yet?).

I would like to go forward with the generic trip points changes and 
finish the conversion so we can fix the trip points monitoring once and 
for all. This series consolidate the self-encapsulation of the thermal 
zone device to prevent changing the trip points directly in the thermal 
zone device structure.

Most of the patches of this series don't have functional changes.

If nobody has concern with it, I propose to pick them up in the next days.

> Daniel Lezcano (8):
>    net/mlx5: Update the driver with the recent thermal changes
>    thermal/core: Hardening the self-encapsulation
>    thermal/core: Reorder the headers inclusion
>    thermal/core: Update the generic trip points
>    thermal/drivers/int3400: Use thermal zone device wrappers
>    thermal/drivers/int340x: Do not check the thermal zone state
>    thermal/drivers/int340x: Use thermal zone device trip update
>    thermal/core: Move the thermal zone structure to the private core
>      header
> 
>   .../net/ethernet/mellanox/mlx5/core/thermal.c | 15 ++--
>   drivers/thermal/gov_bang_bang.c               |  1 +
>   drivers/thermal/gov_fair_share.c              |  1 +
>   drivers/thermal/gov_power_allocator.c         |  7 +-
>   drivers/thermal/gov_step_wise.c               |  1 +
>   drivers/thermal/gov_user_space.c              |  1 +
>   .../intel/int340x_thermal/int3400_thermal.c   | 44 +++++-----
>   .../int340x_thermal/int340x_thermal_zone.c    | 17 ++--
>   drivers/thermal/thermal_acpi.c                |  1 +
>   drivers/thermal/thermal_core.c                | 47 +++++------
>   drivers/thermal/thermal_core.h                | 82 +++++++++++++++++++
>   drivers/thermal/thermal_helpers.c             |  1 +
>   drivers/thermal/thermal_hwmon.c               |  1 +
>   drivers/thermal/thermal_netlink.c             |  1 +
>   drivers/thermal/thermal_of.c                  |  1 +
>   drivers/thermal/thermal_sysfs.c               |  1 +
>   drivers/thermal/thermal_trip.c                | 79 ++++++++++++++++++
>   include/linux/thermal.h                       | 79 +-----------------
>   18 files changed, 241 insertions(+), 139 deletions(-)
>
Rafael J. Wysocki June 20, 2023, 10:54 a.m. UTC | #2
Hi Daniel,

Sorry for the delay.

On Tue, Jun 13, 2023 at 4:12 PM Daniel Lezcano
<daniel.lezcano@linaro.org> wrote:
>
>
> Hi Rafael,
>
> On 25/05/2023 16:01, Daniel Lezcano wrote:
> > The series are the last changes to self-encapsulate the thermal zone device
> > structure in order to protect wild accesses to the thermal zone device
> > internals, especially the trip points and the locks.
> >
> > Meanwhile the latest changes, a new driver has come via the network tree which
> > directly accesses the thermal zone device structure information and uses the
> > old thermal_zone_device_register function. The first patch does the change to
> > use the accessor and the new registering function. It is expected to have the
> > changes to go through the thermal tree along with the other patches.
> >
> > The second patch adds a macro to warn at compilation time if the
> > thermal_core.h is included in a file not belonging to the thermal core
> > code. One warning will happen with the nvidia drivers but this is in
> > the way to be solved.
> >
> > The third patch reorders the headers inclusion in the core code.
> >
> > The fourth patch provides an API to update the thermal trips of a
> > thermal zone. This function takes care of the locking and the thermal
> > zone update.
> >
> > The next patches makes the int340x drivers to use the thermal trip
> > update above and the different accessors for thermal zone structure.
> >
> > Finally the last patch moves the thermal zone device structure from
> > the exported thermal.h header to the thermal core private header.
>
> I think we are all pretty busy for this cycle and that series did not
> raised any comments (yet?).
>
> I would like to go forward with the generic trip points changes and
> finish the conversion so we can fix the trip points monitoring once and
> for all. This series consolidate the self-encapsulation of the thermal
> zone device to prevent changing the trip points directly in the thermal
> zone device structure.
>
> Most of the patches of this series don't have functional changes.
>
> If nobody has concern with it, I propose to pick them up in the next days.

Unfortunately, it is not perfect.

I have no objections to the first 3 patches, so please feel free to
add ACKs from me to those.

However, patch [4/8] is questionable IMV, so please drop it for now.
I'll send my comments to it separately later today.

All of the int340* patches need ACKs from Srinivas, who was not
included in the CC of the original submission AFAICS, before they can
be pushed to linux-next.