Jeff Garzik wrote:
Tejun Heo wrote:
* can we make tags int and use -1 for invalid tag? ATA_TAG_POISON
looks horrible when printed.
print with %x :)
* it would be nice to have some framework to determine whether the
controller is receiving too many consecutive spurious interrupts.
Say, 32 irqs in a row without intervening valid interrupts is a good
reason to be suspicious about stuck IRQ. Freezing & resetting will
resolve the situation in most cases.
well, there is a screaming interrupt detector in the kernel... Ideally
we should strive to make sure that only happens in debug scenarios :)
AFAIK, it disables the IRQ when triggered. As stuck IRQ is something we
see not so rarely with ATA devices, it would be better to deal with them
more intelligently in libata, IMHO. libata has ways to recover from
most of those situations.
* With NCQ, some drives generate spurious D2H FISes with I bit set as
if it were executing non-NCQ commands. So, regardless of controller,
we're likely to see similar problems (but sil24 does all the protocol
handling and ignores such FISes by itself). This can be combined with
the above freeze on too many spurious, I guess.
Interesting
D2H is interesting but the spurious SDB FIS Ric is reporting is scary.
I hope something else is wrong. :(
--
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