Re: [PATCH] hwmon: Driver for SCSI/ATA temperature sensors

From: James Bottomley
Date: Sun Sep 13 2009 - 10:01:30 EST


On Sun, 2009-09-13 at 04:01 +0500, Constantin Baranov wrote:
> The scsitemp module attaches a device to each SCSI device
> and registers it in hwmon. Currently the only method of
> reading temperature is ATA SMART. Adding support of the
> pure SCSI methods is provided.

The code, as you wrote it looks fine.

The basic problem are the effects. Right at the moment it tries to send
an ATA_16 encapsulated SMART command to every SCSI device in the system.
We simply can't allow this. A huge number of SCSI presenting USB
devices are known to lock up when they see either ATA_X encapsulation or
SMART commands. It's not really even safe to send ATA_X to SCSI
devices. The modern ones should all error out fine, but the older ones
are likely to be less tolerant.

Finally, this:

> + if (attr[2] == 194) {
> + *temp = attr[7] * 1000;
> + err = 0;
> + break;

Smart attribute 194 is highly vendor specific ... for instance my new
SATA drive doesn't implement it (it does implement 190 instead).

So really, given the complexity of just obtaining the data and the
problem of matching which data to obtain to which device you have, why
not just use smartctl from userspace for monitoring? you could even
just plug into smartd, it seems to have most of the necessary heuristics
built in already.

James


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/