lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<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

Powered by Openwall GNU/*/Linux Powered by OpenVZ