[CC'ing Jeff. Hi!]
Mark Lord wrote:
Tejun Heo wrote:
About the disabling on hardreset failure... Maybe there is some room
for improvement - e.g. leave PHY status interrupts alive if it's not
causing interrupt storm, but I'm not sure whether the benefits would
outweigh the cost.
Leaving the port frozen (disabled & interrupts plugged) is a safety
measure libata implements. The driver isn't sure in what state the
controller and the attached device are in as they are not responding
even to the 'hard' reset, so it assumes the worst and shuns the port.
As I wrote above, you can ask libata to retry by explicitly telling
libata to rescan the bus. I thought that should be enough when I was
MMm.. sounds like libata should do that periodic polling,
rather than relying on the end-user to do it. Right? :)
So the best of both approaches from above: mask the interrupts
and leave them off, but periodically poll for phy status changes.
Hmm... Polling. Yeap, that's certainly a possibility. It's definitely
better than selectively enabling PHY status change IRQ. Also, we can
use the same facility to implement hotplug for ports which have SStatus
but no PHY status changed IRQ. PMP requires command issuance for
SStatus polling but PMP gets detached when a port gets frozen &
disabled, so it doesn't matter anyway. I'll put this on my to-do list.
Thanks for the suggestion.
--
tejun
-
: 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