On Mon, Jan 3, 2011 at 2:01 PM, Greg Freemyer <greg.freemyer@xxxxxxxxx> wrote: > On Mon, Jan 3, 2011 at 11:42 AM, Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> wrote: >> On Mon, 3 Jan 2011, Tejun Heo wrote: >> >>> > Runtime suspend should not occur unless all the child devices (i.e., >>> > the attached drives) are already suspended. This means it is not >>> > necessary to synchronize any operations, since there shouldn't be any >>> > other accesses to the hardware going on. Therefore there is no need to >>> > use the error handler. >>> >>> Well, it's not that simple I'm afraid. EH actions are asynchronous. >>> Even if all the downstream devices are suspended, PHY events can >>> happen any time and EH could be active. Hmmm... a delta but it would >>> make more sense to put only the controller into hot sleep while >>> leaving the disk alone for rotating devices. >> >> That could be done. How do you tell whether a particular drive is >> rotational? >> > > I don't think there is a kernel flag for it (yet). > > Per ATA-8 there is flag in the identify block. > > http://markmail.org/message/2vonazw4bck7nefa > > As that email says, I don't know how reliable the flag is. > > Greg Ignore my noise, as of 2.6.36 you get it via ata_id_rotation_rate(). If its set to 1, then its a SSD. Unfortunately, needed horkage is not yet implemented. And the 2 proposed patches I've seen to do it were in the scsi-ata translation logic ( drivers/ata/libata-scsi.c) and not readily usable other code directly. Looks to me like a post_horkage_ata_id_rotation_rate() routine needs to be created between libata-scsi and ata_id_rotation_rate(). (More in the above referenced thread if you want to follow it.) Greg -- 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