On Thu, 2009-03-12 at 10:58 +0100, ext Paul Walmsley wrote: > On Thu, 12 Mar 2009, Kauppi Ari (EXT-Ixonos/Oulu) wrote: > > > My process was: > > > > 1) Take 2.6.28-based kernel on custom OMAP3430ES3.0 hardware with > > CONFIG_DEBUG_LOCKDEP enabled. There are no spurious interrupts and > > everything works. > > > > 2) Disable CONFIG_DEBUG_LOCKDEP and all other kernel debugging options. > > Spurious interrupts start to appear on several IRQs, especially with IRQ > > 56 (I2C1). > > > > 3) Apply Richard's patch. All spurious interrupts for IRQ 56 are gone > > but frequency of others increase. > > > > 4) Set IRQF_DISABLED in i2c-omap and the frequency of other spurious > > interrupts decreases considerably. However, I'm starting to realize that > > the real problem is probably elsewhere. > > > > My test setup is pretty systematic, it does not have any user > > interaction in it. I have a relay controlling the power to the device > > and have taken logs of about 12000 boots with different kernel options > > and patches applied. > > Thanks for the details. Can you extract the list of spurious IRQ warnings > that you're getting, and post them? I suspect that, like I2C, many of the > driver ISRs are not reading back the device interrupt status registers > after they clear them. Sure, Here is "grep -hoa 'write for irq.*' *.log | sort | uniq -c" from the most problematic case (step 2 in above process). It should be noted that the messages are always in pairs, ie. there are two consecutive messages in the logs with only microseconds between them. I have divided the counts reported by uniq -c by two in the list below. Boot count: 6628 1 write for irq 12 1 write for irq 25 1 write for irq 33 10 write for irq 37 29532 write for irq 56 12 write for irq 67 1 write for irq 71 281 write for irq 73 114 write for irq 83 407 write for irq 86 I have also heard that with other use cases irq 17 and 21 should be in the list, too. The single ones from 12,25,33,71 are probably just one-offs and should not be taken too seriously, 37/67 are corner cases but 73/83/86 are definitely valid measurements. Best regards, -- Ari -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html