Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1946018AbXBWRVg (ORCPT ); Fri, 23 Feb 2007 12:21:36 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1946019AbXBWRVg (ORCPT ); Fri, 23 Feb 2007 12:21:36 -0500 Received: from rwcrmhc12.comcast.net ([204.127.192.82]:41803 "EHLO rwcrmhc12.comcast.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1946018AbXBWRVf (ORCPT ); Fri, 23 Feb 2007 12:21:35 -0500 Message-ID: <45DF1ADD.9000600@wolfmountaingroup.com> Date: Fri, 23 Feb 2007 09:48:29 -0700 From: "Jeff V. Merkey" User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.12) Gecko/20050921 Red Hat/1.7.12-1.4.1 X-Accept-Language: en-us, en MIME-Version: 1.0 To: "Eric W. Biederman" CC: linux-kernel@vger.kernel.org, Zwane Mwaikambo , Ashok Raj , Ingo Molnar , Andrew Morton , "Lu, Yinghai" , Natalie Protasevich , Andi Kleen , "Siddha, Suresh B" , Linus Torvalds Subject: Re: Conclusions from my investigation about ioapic programming References: <200701221116.13154.luigi.genoni@pirelli.com> <200702021848.55921.luigi.genoni@pirelli.com> <200702021905.39922.luigi.genoni@pirelli.com> <20070206073616.GA15016@elte.hu> <20070206222523.GA11602@elte.hu> In-Reply-To: Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1245 Lines: 40 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@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/