From owner-freebsd-current@FreeBSD.ORG Tue Mar 17 14:04:26 2009 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5FEC91065672 for ; Tue, 17 Mar 2009 14:04:26 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from cyrus.watson.org (cyrus.watson.org [65.122.17.42]) by mx1.freebsd.org (Postfix) with ESMTP id 3BBF38FC1A for ; Tue, 17 Mar 2009 14:04:26 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from fledge.watson.org (fledge.watson.org [65.122.17.41]) by cyrus.watson.org (Postfix) with ESMTPS id D0AAA46B5B; Tue, 17 Mar 2009 10:04:25 -0400 (EDT) Date: Tue, 17 Mar 2009 14:04:25 +0000 (GMT) From: Robert Watson X-X-Sender: robert@fledge.watson.org To: Barney Cordoba In-Reply-To: <929422.83072.qm@web63908.mail.re1.yahoo.com> Message-ID: References: <929422.83072.qm@web63908.mail.re1.yahoo.com> User-Agent: Alpine 2.00 (BSF 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: current@freebsd.org Subject: Re: Interrupt routine usage not shown by top in 8.0 X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Mar 2009 14:04:26 -0000 On Fri, 13 Mar 2009, Barney Cordoba wrote: > Can you clarify the difference between using a fast irq and then launching a > thread (as em does) versus using an MPSAFE interrupt as most other drivers > (particularly bge and ibg) use? > > How do they differ in terms of how they are called and executed? I agree that the code there looks inconsistent in when it uses fast vs regular mpsafe interrupts, Scott may be able to shed more light on this. I'm especially confused by: #if __FreeBSD_version < 700000 if ((error = bus_setup_intr(dev, adapter->res[0], INTR_TYPE_NET | INTR_FAST, em_irq_fast, adapter, #else if ((error = bus_setup_intr(dev, adapter->res[0], INTR_TYPE_NET, em_irq_fast, NULL, adapter, #endif This is in what I took to be the INTR_FAST registration, so I would expect also to see INTR_FAST in the mask for that second bit. Robert N M Watson Computer Laboratory University of Cambridge