Re: Possibly SATA related freeze killed networking and RAID

From: Tejun Heo
Date: Mon Dec 03 2007 - 20:32:59 EST


Phillip Susi wrote:
> Tejun Heo wrote:
>> Surprise, surprise. There's no way to tell whether the controller
>> raised interrupt or not if command is not in progress. As I said
>> before, there's no IRQ pending bit. While processing commands, you can
>> tell by looking at other status registers but when there's nothing in
>> flight and the controller determines it's a good time to raise a
>> spurious interrupt, there's no way you can tell. That dang SFF
>> interface is like 15+ years old.
>>
>> But we can still make things pretty robust. We're working on it.
>
> It sounds like you mean that you know the controller did NOT raise the
> interrupt ( intentionally/correctly ) if there was no command in
> progress, as opposed to not being able to tell. Unless there is some
> condition under which it is valid for the controller to raise an
> interrupt when it had no commands in progress? And if that's the case
> and there's know way to know WHY, that's a broken design.

If everything works correctly, all interrupts can be accounted for.
It's just that there's no margin for erratic behaviors and most ATA
controllers are built really cheap. So, yeah, it's a 15+ years old
half-broken design.

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