[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <BN9PR12MB538167CB6E0EE463ED25898CAF9F9@BN9PR12MB5381.namprd12.prod.outlook.com>
Date: Thu, 4 Aug 2022 12:21:04 +0000
From: Vadim Pasternak <vadimp@...dia.com>
To: Daniel Lezcano <daniel.lezcano@...aro.org>,
"rafael@...nel.org" <rafael@...nel.org>
CC: "davem@...emloft.net" <davem@...emloft.net>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
Ido Schimmel <idosch@...dia.com>,
Petr Machata <petrm@...dia.com>,
Eric Dumazet <edumazet@...gle.com>,
Jakub Kicinski <kuba@...nel.org>,
Paolo Abeni <pabeni@...hat.com>
Subject: RE: [PATCH 2/2] Revert "mlxsw: core: Add the hottest thermal zone
detection"
> -----Original Message-----
> From: Daniel Lezcano <daniel.lezcano@...aro.org>
> Sent: Monday, August 1, 2022 12:56 PM
> To: daniel.lezcano@...aro.org; rafael@...nel.org
> Cc: Vadim Pasternak <vadimp@...dia.com>; davem@...emloft.net;
> netdev@...r.kernel.org; linux-kernel@...r.kernel.org; Ido Schimmel
> <idosch@...dia.com>; Petr Machata <petrm@...dia.com>; Eric Dumazet
> <edumazet@...gle.com>; Jakub Kicinski <kuba@...nel.org>; Paolo Abeni
> <pabeni@...hat.com>
> Subject: [PATCH 2/2] Revert "mlxsw: core: Add the hottest thermal zone
> detection"
>
> This reverts commit 6f73862fabd93213de157d9cc6ef76084311c628.
>
> As discussed in the thread:
>
> https://lore.kernel.org/all/f3c62ebe-7d59-c537-a010-
> bff366c8aeba@...aro.org/
>
> the feature provided by commits 2dc2f760052da and 6f73862fabd93 is
> actually already handled by the thermal framework via the cooling device
> state aggregation, thus all this code is pointless.
>
> The revert conflicts with the following changes:
> - 7f4957be0d5b8: thermal: Use mode helpers in drivers
> - 6a79507cfe94c: mlxsw: core: Extend thermal module with per QSFP module
> thermal zones
>
> These conflicts were fixed and the resulting changes are in this patch.
>
> Signed-off-by: Daniel Lezcano <daniel.lezcano@...aro.org>
Tested-by: Vadim Pasternak <vadimp@...dia.com>
Daniel,
Could you, please, re-base the patch on top of net-next as Jakub mentioned?
Or do you want me to do it?
There is also redundant blank line in this patch:
&mlxsw_thermal_module_ops,
+
&mlxsw_thermal_params,
> ---
> .../ethernet/mellanox/mlxsw/core_thermal.c | 59 +------------------
> 1 file changed, 2 insertions(+), 57 deletions(-)
>
> diff --git a/drivers/net/ethernet/mellanox/mlxsw/core_thermal.c
> b/drivers/net/ethernet/mellanox/mlxsw/core_thermal.c
> index f5751242653b..373a77c3da02 100644
> --- a/drivers/net/ethernet/mellanox/mlxsw/core_thermal.c
> +++ b/drivers/net/ethernet/mellanox/mlxsw/core_thermal.c
> @@ -22,7 +22,6 @@
> #define MLXSW_THERMAL_HYSTERESIS_TEMP 5000 /* 5C */
> #define MLXSW_THERMAL_MODULE_TEMP_SHIFT
> (MLXSW_THERMAL_HYSTERESIS_TEMP * 2)
> #define MLXSW_THERMAL_ZONE_MAX_NAME 16
> -#define MLXSW_THERMAL_TEMP_SCORE_MAX GENMASK(31, 0)
> #define MLXSW_THERMAL_MAX_STATE 10
> #define MLXSW_THERMAL_MIN_STATE 2
> #define MLXSW_THERMAL_MAX_DUTY 255
> @@ -96,8 +95,6 @@ struct mlxsw_thermal {
> u8 tz_module_num;
> struct mlxsw_thermal_module *tz_gearbox_arr;
> u8 tz_gearbox_num;
> - unsigned int tz_highest_score;
> - struct thermal_zone_device *tz_highest_dev;
> };
>
> static inline u8 mlxsw_state_to_duty(int state) @@ -186,34 +183,6 @@
> mlxsw_thermal_module_trips_update(struct device *dev, struct
> mlxsw_core *core,
> return 0;
> }
>
> -static void mlxsw_thermal_tz_score_update(struct mlxsw_thermal
> *thermal,
> - struct thermal_zone_device *tzdev,
> - struct mlxsw_thermal_trip *trips,
> - int temp)
> -{
> - struct mlxsw_thermal_trip *trip = trips;
> - unsigned int score, delta, i, shift = 1;
> -
> - /* Calculate thermal zone score, if temperature is above the hot
> - * threshold score is set to MLXSW_THERMAL_TEMP_SCORE_MAX.
> - */
> - score = MLXSW_THERMAL_TEMP_SCORE_MAX;
> - for (i = MLXSW_THERMAL_TEMP_TRIP_NORM; i <
> MLXSW_THERMAL_NUM_TRIPS;
> - i++, trip++) {
> - if (temp < trip->temp) {
> - delta = DIV_ROUND_CLOSEST(temp, trip->temp -
> temp);
> - score = delta * shift;
> - break;
> - }
> - shift *= 256;
> - }
> -
> - if (score > thermal->tz_highest_score) {
> - thermal->tz_highest_score = score;
> - thermal->tz_highest_dev = tzdev;
> - }
> -}
> -
> static int mlxsw_thermal_bind(struct thermal_zone_device *tzdev,
> struct thermal_cooling_device *cdev) { @@ -
> 278,10 +247,8 @@ static int mlxsw_thermal_get_temp(struct
> thermal_zone_device *tzdev,
> dev_err(dev, "Failed to query temp sensor\n");
> return err;
> }
> +
> mlxsw_reg_mtmp_unpack(mtmp_pl, &temp, NULL, NULL, NULL,
> NULL);
> - if (temp > 0)
> - mlxsw_thermal_tz_score_update(thermal, tzdev, thermal-
> >trips,
> - temp);
>
> *p_temp = temp;
> return 0;
> @@ -342,22 +309,6 @@ static int mlxsw_thermal_set_trip_hyst(struct
> thermal_zone_device *tzdev,
> return 0;
> }
>
> -static int mlxsw_thermal_trend_get(struct thermal_zone_device *tzdev,
> - int trip, enum thermal_trend *trend)
> -{
> - struct mlxsw_thermal_module *tz = tzdev->devdata;
> - struct mlxsw_thermal *thermal = tz->parent;
> -
> - if (trip < 0 || trip >= MLXSW_THERMAL_NUM_TRIPS)
> - return -EINVAL;
> -
> - if (tzdev == thermal->tz_highest_dev)
> - return 1;
> -
> - *trend = THERMAL_TREND_STABLE;
> - return 0;
> -}
> -
> static struct thermal_zone_params mlxsw_thermal_params = {
> .no_hwmon = true,
> };
> @@ -371,7 +322,6 @@ static struct thermal_zone_device_ops
> mlxsw_thermal_ops = {
> .set_trip_temp = mlxsw_thermal_set_trip_temp,
> .get_trip_hyst = mlxsw_thermal_get_trip_hyst,
> .set_trip_hyst = mlxsw_thermal_set_trip_hyst,
> - .get_trend = mlxsw_thermal_trend_get,
> };
>
> static int mlxsw_thermal_module_bind(struct thermal_zone_device *tzdev,
> @@ -473,8 +423,6 @@ static int mlxsw_thermal_module_temp_get(struct
> thermal_zone_device *tzdev,
> /* Update trip points. */
> err = mlxsw_thermal_module_trips_update(dev, thermal->core, tz,
> crit_temp, emerg_temp);
> - if (!err && temp > 0)
> - mlxsw_thermal_tz_score_update(thermal, tzdev, tz->trips,
> temp);
>
> return 0;
> }
> @@ -547,7 +495,6 @@ static struct thermal_zone_device_ops
> mlxsw_thermal_module_ops = {
> .set_trip_temp = mlxsw_thermal_module_trip_temp_set,
> .get_trip_hyst = mlxsw_thermal_module_trip_hyst_get,
> .set_trip_hyst = mlxsw_thermal_module_trip_hyst_set,
> - .get_trend = mlxsw_thermal_trend_get,
> };
>
> static int mlxsw_thermal_gearbox_temp_get(struct thermal_zone_device
> *tzdev, @@ -568,8 +515,6 @@ static int
> mlxsw_thermal_gearbox_temp_get(struct thermal_zone_device *tzdev,
> return err;
>
> mlxsw_reg_mtmp_unpack(mtmp_pl, &temp, NULL, NULL, NULL,
> NULL);
> - if (temp > 0)
> - mlxsw_thermal_tz_score_update(thermal, tzdev, tz->trips,
> temp);
>
> *p_temp = temp;
> return 0;
> @@ -584,7 +529,6 @@ static struct thermal_zone_device_ops
> mlxsw_thermal_gearbox_ops = {
> .set_trip_temp = mlxsw_thermal_module_trip_temp_set,
> .get_trip_hyst = mlxsw_thermal_module_trip_hyst_get,
> .set_trip_hyst = mlxsw_thermal_module_trip_hyst_set,
> - .get_trend = mlxsw_thermal_trend_get,
> };
>
> static int mlxsw_thermal_get_max_state(struct thermal_cooling_device
> *cdev, @@ -667,6 +611,7 @@ mlxsw_thermal_module_tz_init(struct
> mlxsw_thermal_module *module_tz)
>
> MLXSW_THERMAL_TRIP_MASK,
> module_tz,
>
> &mlxsw_thermal_module_ops,
> +
>
> &mlxsw_thermal_params,
> 0,
> module_tz->parent-
> >polling_delay);
> --
> 2.25.1
Powered by blists - more mailing lists