[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <45DF1ADD.9000600@wolfmountaingroup.com>
Date: Fri, 23 Feb 2007 09:48:29 -0700
From: "Jeff V. Merkey" <jmerkey@...fmountaingroup.com>
To: "Eric W. Biederman" <ebiederm@...ssion.com>
CC: linux-kernel@...r.kernel.org,
Zwane Mwaikambo <zwane@...radead.org>,
Ashok Raj <ashok.raj@...el.com>, Ingo Molnar <mingo@...e.hu>,
Andrew Morton <akpm@...l.org>,
"Lu, Yinghai" <yinghai.lu@....com>,
Natalie Protasevich <protasnb@...il.com>,
Andi Kleen <ak@...e.de>,
"Siddha, Suresh B" <suresh.b.siddha@...el.com>,
Linus Torvalds <torvalds@...ux-foundation.org>
Subject: Re: Conclusions from my investigation about ioapic programming
Eric W. Biederman wrote:
>
>
>** Conclusions.
>
>*IRQs must be reprogramed in interrupt context.
>
>The result of this is investigation is that I am convinced we need
>to perform the irq migration activities in interrupt context although
>I am not convinced it is completely safe. I suspect multiple irqs
>firing closely enough to each other may hit the same issues as
>migrating irqs from process context. However the odds are on our
>side, when we are in irq context.
>
>
>
In my older days of programmin 82489DX chipsets (which the AMD APIC
versions resemble
the 82489DX more closely than intel's newer incarnations), you had to
EOI the apic early if you
wanted to migrate interrupt assignments. I had to do the following steps
to move an IRQ:
1. Mask the LOCAL APIC
2, EOI the interrupt
3. Leave the interrupt entry masked until the ISR completed.
4. Reprogram the interrupt.
5. Unmask as the ISR exits
In other words, EOI early in all cases to clear the local and IOAPIC state.
Jeff
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists