From owner-freebsd-current@FreeBSD.ORG Tue Mar 17 15:24:27 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 21F2C1065675 for ; Tue, 17 Mar 2009 15:24:27 +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 F01378FC15 for ; Tue, 17 Mar 2009 15:24: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 91D7146BA1; Tue, 17 Mar 2009 11:24:26 -0400 (EDT) Date: Tue, 17 Mar 2009 15:24:26 +0000 (GMT) From: Robert Watson X-X-Sender: robert@fledge.watson.org To: Paolo Pisati In-Reply-To: <49BFB340.9050909@oltrelinux.com> Message-ID: References: <929422.83072.qm@web63908.mail.re1.yahoo.com> <49BFB340.9050909@oltrelinux.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: Barney Cordoba , 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 15:24:27 -0000 On Tue, 17 Mar 2009, Paolo Pisati wrote: > perhaps i misunderstood your question, but i'll try to explain a bit: > > before 7.0, bus_setup_intr() took just one function thus you could have an > INTR_FAST or an INTR_MPSAFE handler, and you choose the kind of handler via > a flag (INTR_FAST in this case). > > after 7.0, bus_setup_intr() took 2 functions, thus you could have: a fast > handler (aka filter), or an ithread handler (aka mpsafe), or a fast + > ithread handler (available only with INTR_FILTER turned on). > > in bus_setup_intr() the first function pointer is for the filter side of the > handler, while the second pointer is for the ithread part, and if you > declare both you can filter events (interrupts) and call the rest of the > device driver (the ithread part) after the filter has recognized and > acknowledged&masked the interrupt. This clarifies my misunderstanding, thanks! Robert N M Watson Computer Laboratory University of Cambridge