On Mon, 27 Feb 2017, Linus Torvalds wrote: > So I don't disagree that in a perfect world all drivers should just > handle it. It's just that it's not realistic. > > The fact that we have now *twice* gotten an oops report or a "this > machine doesn't boot" report etc within a week or so of merging the > problematic patch does *not* indicate that it's easy to fix or rare. > > Quite the reverse. > > It indicates that it's just rare enough that core developers don't see > it, but it's common enough to have triggered issues in random places. > > And it will just get *much* worse when you then get the random > end-users that usually have older machines than the developers who > actually test daily development -git trees. I tend to disagree. The retrigger mechanism has been there forever, at least the history git tree which goes back to 2.5.0 has it and as it was in the initial commit is it was there in 2.4 already. We broke that in 4.2 when the x86 interrupt mechanism was reworked completely. That went pretty much unnoticed until somebody moved from 4.1 to 4.9 and discovered that edge interrupts got lost. It's not surprising that it went unnoticed because lots of stuff moved towards MSI (which has the retrigger still enabled) and the devices which are prone to the 'lost edge' issue are limited. So we had that retrigger exposing crappy older drivers to the spurious interrupt until 2 years ago. The two drivers which have been exposed by bringing the retrigger back are post 4.2 or have been wreckaged post 4.2. Due to the fact that the old drivers have been exposed over many years to the spurious retrigger (that "feature" exists on old hardware as well) I don't think it's much of a problem. We also had the DEBUG_SHIRQ active until we had to disable it in 6d83f94db95cf (2.6.38) but not because it exposed crappy interrupt handlers. We had to disable due to a functional problem described in the commit message. I know for sure that distros had enabled DEBUG_SHIRQ (and some still have the reduced functionality of it enabled). What I find more problematic is: - to keep this 'lost edge' regression around, which really can render hardware useless. - to ignore the fact that these buggy interrupt handlers can be exposed by spurious interrupt events (as I showed in the other mail) "naturaly", but with a way smaller probability. If a user runs into such a spurious problem he has absolutely NO chance to debug it at all. Exposing it by the retrigger mechanism makes the detection more "reliable" and allows debugging it. The backtraces are pretty telling and clear. Thanks, tglx