Re: ASM1083 PCIx-PCI bridge interrupts - widespread problems

From: Edward Donovan
Date: Thu Feb 02 2012 - 15:23:07 EST


On Thu, Feb 2, 2012 at 2:28 PM, Linus Torvalds
<torvalds@xxxxxxxxxxxxxxxxxxxx> wrote:
> On Thu, Feb 2, 2012 at 11:20 AM, Edward Donovan
> <edward.donovan@xxxxxxxxxx> wrote:
>>
>> If we end up helpless with this chip, will we at least warn the user
>> that it's known to be buggy?  I dont' know if there's a standard
>> procedure when documenting bad hardware.
>
> That's probably a good idea.
>
> That said, the "switch to polled mode and then try to reenable every
> 100ms" approach sounds like a good idea regardless. The more robust we
> can be, the better.
>
> I realize that the people with *this* particular problem would
> probably want to reenable them even more often than 100ms or so, but
> that could lead to problems for people with seriously screaming
> interrupts (which has definitely happened too), so we need to balance
> those two issues out against each other.
>
> And we'd probably need to limit the warning messages if we start
> re-enabling it - so that people with constantly screaming interrupts
> don't get a constant stream of 10 "nobody cared, disabling" messages
> per second.
>
> So I'd take a tested patch that looks sane for both the "warning: this
> pcie-pci bridge is dodgy" and for the "try polling, then re-enable for
> a while" approach.

I don't have the bad chip, so I won't try to work that up myself. And
I'd have to ponder before trying the generic parts of this. But let
me see if I'm following you. Is that, potentially, these two or three
patches?

* New logic in the generic IRQ code, in spurious.c, adding a "try
polling, then re-enable for
a while" method, for everybody?

* A warning message about ASM1083, under arch/ or drivers/ ? A better
place for special checks, than the genirq code. (Right?)

* Could there be more hardware-specifc code, to crank up the
frequency, when you do have this chip? I don't think we have this
facility at present: would we let the arch-or-drivers code set a
variable, to be honored by irq/spurious.c?

I speak with hastiness and naivete, especially on that last one. I
imagine you and Ingo and Thomas have considered such possibly-lousy
ideas a lot more than me, so I hope wisdom will be dispensed.

Thanks,

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