[smartmontools-support] [PATCH] RFC: libata: Add hwmon support for SMART temperature sensors

Linus Walleij linus.walleij at linaro.org
Tue Aug 14 16:29:33 CEST 2018


On Sat, Aug 11, 2018 at 9:15 PM Guenter Roeck <linux at roeck-us.net> wrote:
> On Fri, Aug 10, 2018 at 12:24:25AM +0200, Linus Walleij wrote:

> > +     /* Names the hwmon device something like "sd_0:0:0:0" */
> > +     sname = devm_kasprintf(dev, GFP_KERNEL, "sd_%s", dev_name(dev));
> > +     if (!sname)
> > +             return -ENOMEM;
>
> This is actually not needed and results in an awkward output such as
>
> sd_10:0:0:0-scsi-10-0
>
> as device name reported by the sensors command (after adding scsi bus
> support to it). We don't usually encode device indexes into the name
> string since it results in duplicate output. "sd" as name passed to
> devm_hwmon_device_register_with_info() is sufficient.
>
> I implemented the following translation from host:bus:slot:lun to
> the sensors command output:
>
> a:b:c:d -> scsi-a-bbcd, where a in the output is decimal and bbcd are hex
> nibbles. Let me know if this is ok or if you have a better idea.

Fair enough, do you have a copy of the code or patch so I can
get it exactly as you want it?

> I found that some ssd drives report a temperature of 0 degrees C.
>
> $ sudo hddtemp /dev/sdb
> /dev/sdb: M4-CT256M4SSD2: 0°C
>
> # sensors
> sd_10:0:0:0-scsi-10-0
> Adapter: SCSI adapter
> temp1:         +0.0°C  (low  =  +0.0°C, high =  +0.0°C)

Tricky case. Should we assume no sane person is using their drive
at the freeze point and simply bail out on 0 degrees?

> At least some drives (eg WDC WD4001FAEX-00MJRA0) don't report low/high
> temperatures.

Yeah smartmontools says this too. It's kind of a vendor extension.

> Maybe we should detect this situation and not instantiate
> the device (or the min/max attributes) if no useful data is returned.
> What do you think ?

I designed it to just return 0/0 but I guess it is better to just
not support the min/max attributes. As there may be many
harddisks I need to set up the sensor attributes in the state
instead so the code gets a bit complex but it's fine I guess.

> Are min/max temperatures configurable ?

AFAICT it's something the vendor just put in sometimes, so it is
a property of the sensor inside the drive.

Yours,
Linus Walleij



More information about the Smartmontools-support mailing list