From owner-freebsd-arch@FreeBSD.ORG Sat Jan 10 20:14:55 2004 Return-Path: Delivered-To: freebsd-arch@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 0371116A4CE for ; Sat, 10 Jan 2004 20:14:55 -0800 (PST) Received: from smtp.mho.com (smtp.mho.net [64.58.4.6]) by mx1.FreeBSD.org (Postfix) with SMTP id 8923C43D46 for ; Sat, 10 Jan 2004 20:14:53 -0800 (PST) (envelope-from scottl@freebsd.org) Received: (qmail 22706 invoked by uid 1002); 11 Jan 2004 04:14:50 -0000 Received: from unknown (HELO freebsd.org) (64.58.1.252) by smtp.mho.net with SMTP; 11 Jan 2004 04:14:50 -0000 Message-ID: <4000CD54.30801@freebsd.org> Date: Sat, 10 Jan 2004 21:13:08 -0700 From: Scott Long User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.5) Gecko/20031103 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Bruce Evans References: <3FFEFA18.1060805@freebsd.org> <20040111005502.O22604@gamplex.bde.org> In-Reply-To: <20040111005502.O22604@gamplex.bde.org> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit cc: arch@freebsd.org Subject: Re: Interrupt API change X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Jan 2004 04:14:55 -0000 Bruce Evans wrote: > > That'a about all it can do. In the shared irq case, there is no > alternative to calling all the handlers if one of the handlers did > something, since activity by one handler is unrelated to activity by > others (except as an optimization that only works in the edge triggered > case -- devices usually rarely interrupt concurrently so assuming that > thety never do is usually most efficient). In the non-shared case, > individual handlers can better decide about interrupt storms in a > device-specific way. The non-shared case will hopefully be almost all > cases when APIC support becomes standard on i386's. > This is way too overly optimistic. Interrupt routing is still limited by things like the number of physical PCI INTx lines. The APIC can't do anything about devices that share the same physical line. MSI will help this, but I suspect that MSI will only be supported on the higher-end PCI/PCI-X cards, at least until PCI-Express is adopted. I wouldn't expect the shared PCI INTx line problem to go away for at least another 5-7 years. There is no reason to duplicate interrupt storm heuristics in every single PCI driver. For now, the change will be essentially a no-op. However, getting it in will allow us to experiment with it in the future with ease. I'm not advocating that we break shared interrupt semantics and use this to short-circuit handlers. > > The first level interrupt handler should call (or schedule) other levels > as necessary (as in RELENG_4, but not using inefficient scheduling as in > -current). I understand, and that's why I haven't committed to doing it yet. > > Bruce >