Re: SATA hotplug from the user side ?

From: Tejun Heo
Date: Mon Feb 05 2007 - 06:51:01 EST


Hello, Henrique, sorry about being late.

Henrique de Moraes Holschuh wrote:
> Tejun, is it feasible to teach libata to check the device power management
> state before issuing any of the sleep, head unload and spin-down commands?
>
> libata would need to block its EH from resetting a channel for this check
> operation (we don't want to wake up sleeping devices to ask it if it is
> sleeping...) if it cannot easily check if an device is asleep before issuing
> a command to it. Either that, or (for as long as there is no such a thing
> as a multi-initiator libata device) just keep track of the device power
> management state by snooping all the commands sent to it.
>
> The idea would be to do the "optimal" thing if one tries to sleep, unload
> heads or spin down an device that is already doing one of these things...
> That would make things MUCH easier on userspace.

For that to be meaningful, the premise is that ATA drives spin up to
process STANDBY IMMEDIATE when it's in Standby state. The spec doesn't
exactly specify what happens on when STANDBY IMMEDIATE is received while
in Standby state other than it exits to Active iff Media access is required.

I've tested several drivers from different vendors and none of them
seems to spin up when they receive FLUSH and STANDBY IMMEDIATE while
they're in Standby mode. They just ack that the command is complete and
stay spun down. Do you have drives which act differently?

So, if most of drives act that way, whether both or anyone of them are
being done just doesn't matter as long as at least one gets done.

Thanks.

--
tejun
-
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/