Re: [PATCH v2] hwmon: Driver for temperature sensors on SATA drives

From: Guenter Roeck
Date: Thu Dec 19 2019 - 02:37:56 EST


Hi Martin,

On 12/18/19 4:15 PM, Martin K. Petersen wrote:

Guenter,

This driver solves this problem by adding support for reading the
temperature of SATA drives from the kernel using the hwmon API and
by adding a temperature zone for each drive.

My working tree is available here:

https://git.kernel.org/pub/scm/linux/kernel/git/mkp/linux.git/log/?h=5.6/drivetemp


I had a quick look at the patch. Looks good overall. I think you should be able
to use the buffer allocated in struct drivetemp_data (named smartdata). Maybe
rename it to something more generic. If it needs to be dma-aligned, maybe we
can use kzalloc() to allocate it. Only reason I didn't use it for vpd was because
that needed 1024 bytes.

A few notes:

- Before applying your patch I did s/satatemp/drivetemp/

- I get a crash in the driver core during probe if the drivetemp module
is loaded prior to loading ahci or a SCSI HBA driver. This crash is
unrelated to my changes. Haven't had time to debug.

Definitely something we'll need to look into. Do you have a traceback ?

Thanks,
Guenter

- I tweaked your ATA detection heuristics and now use the cached VPD
page 0x89 instead of fetching one from the device.

- I also added support for reading the temperature log page on SCSI
drives.

- Tested with a mixed bag of about 40 SCSI and SATA drives attached.

- I still think sensor naming needs work. How and where are the
"drivetemp-scsi-8-140" names generated?

I'll tinker some more but thought I'd share what I have for now.