"Siddha, Suresh B" <[EMAIL PROTECTED]> writes: > Eric, > > On Fri, May 18, 2007 at 07:40:53AM -0700, Eric W. Biederman wrote: >> Still in any of those I don't see a problem with switching to edge >> triggered mode and then back again. Either Remote IRR will keep >> it's current state or it will be cleared. Remote IRR should not >> get set (when it was clear) by such a procedure because that >> would mess up the normal interrupt enable sequence that happens >> on boot. So I'm pretty certain toggling the edge bit is harmless >> and it may actually clear Remote IRR for us. > ... >> >> I think going more the way that this code has gone on arch/i386 with >> real functions is preferable. > > There is an issue with this suggestion. We have an inflight > EOI broadcast msg to this IOAPIC (that got delayed but still alive) and > that can cause problem if we use edge and back to level to reset remote IRR > bit. > > If the vector number stays same during irq migration and if we reset remote > IRR bit using the above method(edge and then back to level) during > irq migration, then we have a problem. A new interrupt arriving on a new > cpu will set the remote IRR bit and now the old inflight EOI broadcast > reaches IOAPIC RTE(resetting the remote IRR bit, because the vector in the > broadcast msg is same), while the kernel code still assumes that the remote > IRR bit is still set. This will lead to more problems and issues.
Ok. I will agree that if the level->edge->level switch does not reset Remote_IRR and the EOI arrives in that window. We have another condition in which Remote_IRR can get stuck on. Eric - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/