Re: [PATCH] nvme-hwmon: drop not common HWMON_T_MIN and HWMON_T_MAX

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 3/13/21 12:32 AM, wangyugui wrote:
> HWMON_T_MIN is not common in NVMe SSD, so drop all of them in nvme-hwmon.
> 
> HWMON_T_MAX is only common in NVMe SSD Composite sensor, so drop them in other sensors.
> 
> Before this patch(SSD: PM1733):
> #sensors
> nvme-pci-4300
> Adapter: PCI adapter
> Composite:    +49.9°C  (low  = -273.1°C, high = +71.8°C)
>                        (crit = +84.8°C)
> Sensor 1:     +47.9°C  (low  = -273.1°C, high = +65261.8°C)
> ERROR: Can't get value of subfeature temp3_min: I/O error
> ERROR: Can't get value of subfeature temp3_max: I/O error
> Sensor 2:     +49.9°C  (low  =  +0.0°C, high =  +0.0°C)
> 
> # cat /sys/class/nvme/nvme0/hwmon1/temp3_min
> cat: /sys/class/nvme/nvme0/hwmon1/temp3_min: Input/output error
> # cat /sys/class/nvme/nvme0/hwmon1/temp3_max
> cat: /sys/class/nvme/nvme0/hwmon1/temp3_max: Input/output error
> 
> After this patch(SSD: PM1733):
> #sensors
> nvme-pci-4300
> Adapter: PCI adapter
> Composite:    +48.9°C  (high = +71.8°C, crit = +84.8°C)
> Sensor 1:     +46.9°C
> Sensor 2:     +48.9°C
> 

Signed-off-by: missing.

Either case, no.

On one of my NVMEs, after setting the limits:

nvme-pci-0100
Adapter: PCI adapter
Composite:    +29.9°C  (low  =  -0.1°C, high = +76.8°C)
                       (crit = +78.8°C)
Sensor 1:     +29.9°C  (low  =  -0.1°C, high = +254.8°C)
Sensor 2:     +37.9°C  (low  =  -0.1°C, high = +254.8°C)

That it doesn't work on yours doesn't mean it needs to be disabled for
all other NVMEs. Instead, we'll need to figure out how to correctly
identify that limits for the second subfeature sensor are not supported,
or what exactly the NVME complains about when trying to read the limits
for the second subsensor. One possible solution might be to call
nvme_get_temp_thresh() from nvme_hwmon_is_visible() and return 0 if the
call returns an error.

Also, the low/high limit readings on the composite sensor and on
Sensor 1 only mean that limits are not configured. That is not a reason
to disable the limit attributes entirely. One could instead write useful
limits into those attributes.

Guenter

> ---
>  drivers/nvme/host/hwmon.c | 18 +++++++++---------
>  1 file changed, 9 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/nvme/host/hwmon.c b/drivers/nvme/host/hwmon.c
> index 552dbc0..a93612f 100644
> --- a/drivers/nvme/host/hwmon.c
> +++ b/drivers/nvme/host/hwmon.c
> @@ -188,23 +188,23 @@ static umode_t nvme_hwmon_is_visible(const void *_data,
>  static const struct hwmon_channel_info *nvme_hwmon_info[] = {
>  	HWMON_CHANNEL_INFO(chip, HWMON_C_REGISTER_TZ),
>  	HWMON_CHANNEL_INFO(temp,
> -			   HWMON_T_INPUT | HWMON_T_MAX | HWMON_T_MIN |
> +			   HWMON_T_INPUT | HWMON_T_MAX |
>  				HWMON_T_CRIT | HWMON_T_LABEL | HWMON_T_ALARM,
> -			   HWMON_T_INPUT | HWMON_T_MAX | HWMON_T_MIN |
> +			   HWMON_T_INPUT |
>  				HWMON_T_LABEL,
> -			   HWMON_T_INPUT | HWMON_T_MAX | HWMON_T_MIN |
> +			   HWMON_T_INPUT |
>  				HWMON_T_LABEL,
> -			   HWMON_T_INPUT | HWMON_T_MAX | HWMON_T_MIN |
> +			   HWMON_T_INPUT |
>  				HWMON_T_LABEL,
> -			   HWMON_T_INPUT | HWMON_T_MAX | HWMON_T_MIN |
> +			   HWMON_T_INPUT |
>  				HWMON_T_LABEL,
> -			   HWMON_T_INPUT | HWMON_T_MAX | HWMON_T_MIN |
> +			   HWMON_T_INPUT |
>  				HWMON_T_LABEL,
> -			   HWMON_T_INPUT | HWMON_T_MAX | HWMON_T_MIN |
> +			   HWMON_T_INPUT |
>  				HWMON_T_LABEL,
> -			   HWMON_T_INPUT | HWMON_T_MAX | HWMON_T_MIN |
> +			   HWMON_T_INPUT |
>  				HWMON_T_LABEL,
> -			   HWMON_T_INPUT | HWMON_T_MAX | HWMON_T_MIN |
> +			   HWMON_T_INPUT |
>  				HWMON_T_LABEL),
>  	NULL
>  };
> 




[Index of Archives]     [LM Sensors]     [Linux Sound]     [ALSA Users]     [ALSA Devel]     [Linux Audio Users]     [Linux Media]     [Kernel]     [Gimp]     [Yosemite News]     [Linux Media]

  Powered by Linux