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.