On Sat, Feb 14, 2009 at 06:57:33PM -0500, Mark Lord wrote: > > I have a bunch of SATA disks hanging off a SAS expander on which I > > would like to disable APM (using hdparm -B). This doesn't work as-is, > > and from reading: > > > > http://smartmontools.sourceforge.net/smartmontools_scsi.html > > > > it appears that I'd need to hack hdparm to use the ATA PASS THROUGH > > SCSI command to make it talk to SATA disks behind a SAS expander, as > > was already done for smartctl. Did anyone implement something like > > this for hdparm yet by any chance? > > It actually does that already. What version are you trying with? I tried with 9.10. Ah yes, now I see that the man page mentions SAT, but it doesn't appear to be detecting that it needs to do that. > Grab the latest from sourceforge (9.10 or 9.11) and try again. > > If it still doesn't work with that, then let me know and we'll sort > it out. I get this when trying to set -B 254 (in an attempt to turn off head unload/load -- these are WD drives that do that quite frequently): [root@heth hdparm-9.10]# ./hdparm -B 254 /dev/sdb /dev/sdb: setting Advanced Power Management level to 0xfe (254) HDIO_DRIVE_CMD failed: Input/output error [root@heth hdparm-9.10]# I don't see it issuing any SG_IO ioctls with command byte being 0xA1 or 0xA5 -- I don't see it issuing SG_IO at all: [...] open("/dev/sdb", O_RDONLY|O_NONBLOCK) = 3 fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 2), ...}) = 0 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b9e17076000 write(1, "\n", 1) = 1 write(1, "/dev/sdb:\n", 10) = 10 write(1, " setting Advanced Power Manageme"..., 55) = 55 ioctl(3, 0x31f, 0x7fff93a336b0) = -1 EINVAL (Invalid argument) dup(2) = 4 fcntl(4, F_GETFL) = 0x8002 (flags O_RDWR|O_LARGEFILE) brk(0) = 0xf97b000 brk(0xf99c000) = 0xf99c000 fstat(4, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 2), ...}) = 0 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b9e17077000 lseek(4, 0, SEEK_CUR) = -1 ESPIPE (Illegal seek) write(4, " HDIO_DRIVE_CMD failed: Invalid "..., 41) = 41 close(4) = 0 munmap(0x2b9e17077000, 4096) = 0 close(3) = 0 exit_group(0) = ? -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html