From owner-freebsd-arch@FreeBSD.ORG Wed Oct 14 15:00:46 2009 Return-Path: Delivered-To: freebsd-arch@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8A19C1065676; Wed, 14 Oct 2009 15:00:46 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from cyrus.watson.org (cyrus.watson.org [65.122.17.42]) by mx1.freebsd.org (Postfix) with ESMTP id 4594A8FC15; Wed, 14 Oct 2009 15:00:46 +0000 (UTC) Received: from bigwig.baldwin.cx (66.111.2.69.static.nyinternet.net [66.111.2.69]) by cyrus.watson.org (Postfix) with ESMTPSA id D119146B1A; Wed, 14 Oct 2009 11:00:45 -0400 (EDT) Received: from jhbbsd.hudson-trading.com (unknown [209.249.190.8]) by bigwig.baldwin.cx (Postfix) with ESMTPA id DC0568A01D; Wed, 14 Oct 2009 11:00:44 -0400 (EDT) From: John Baldwin To: Alexander Motin Date: Wed, 14 Oct 2009 07:57:58 -0400 User-Agent: KMail/1.9.7 References: <200909301732.20589.jhb@freebsd.org> <1255483383.00172964.1255470604@10.7.7.3> <4AD57B2C.8070606@FreeBSD.org> In-Reply-To: <4AD57B2C.8070606@FreeBSD.org> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200910140757.58887.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.0.1 (bigwig.baldwin.cx); Wed, 14 Oct 2009 11:00:44 -0400 (EDT) X-Virus-Scanned: clamav-milter 0.95.1 at bigwig.baldwin.cx X-Virus-Status: Clean X-Spam-Status: No, score=-2.5 required=4.2 tests=AWL,BAYES_00, DATE_IN_PAST_03_06,RDNS_NONE autolearn=no version=3.2.5 X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on bigwig.baldwin.cx Cc: freebsd-arch@freebsd.org Subject: Re: Interrupt Descriptions X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Oct 2009 15:00:46 -0000 On Wednesday 14 October 2009 3:18:04 am Alexander Motin wrote: > John Baldwin wrote: > > On Wednesday 30 September 2009 5:32:20 pm John Baldwin wrote: > >> A few folks have asked recently for the ability to add descriptive strings > > to > >> registered interrupt handlers. This is especially true since the advent of > >> MSI with multiple interrupts per device. I hacked up a prototype today that > >> adds a new 'bus_describe_intr()' that takes the IRQ resource, the void * > >> cookie returned by bus_setup_intr() and var args description and appends > > that > >> to the interrupt name in the thread and vmstat -i info. The current patch > >> only has the MI bits and the MD bits for amd64 as well as a sample change to > >> the igb(4) driver. > >> > >> The patch is at http://www.FreeBSD.org/~jhb/patches/intr_describe.patch. > >> > >> An example from this patch is: > >> > >>> vmstat -i > >> interrupt total rate > >> irq1: atkbd0 8 0 > >> irq4: uart0 751 5 > >> irq6: fdc0 6 0 > >> irq14: ata0 36 0 > >> irq20: uhci0 20 0 > >> irq23: uhci3 ehci0 2 0 > >> irq28: mpt0 1661 11 > >> irq256: igb0:tx 0 880 6 > >> irq257: igb0:rx 0 1098 7 > >> irq258: igb0:link 3 0 > >> irq259: igb1:tx 0 1 0 > >> irq260: igb1:rx 0 134 0 > >> irq261: igb1:link 3 0 > > > > Do folks feel that the issues with the intrnames and intrcnt API warrant > > delaying this work, or do folks have any objections to the proposed > > bus_describe_intr() API? Personally I think that intrnames and intrcnt are > > certainly broken, but that they have been broken for quite a while and that > > these changes do not make them more broken than they currently are. Also, I > > think that any fixes to intrcnt/intrnames would be orthogonal to > > bus_describe_intr(). > > Just some 50 cents on topic: it would be nice if `vmstat -i` was able to > show all (more then 2) consumers of shared interrupt instead of "cbb0 > wpi0+". I haven't looked who actually limit this and why, so it's just a > wish. At the moment the limit comes from stuffing the name into a p_comm[] (or in 8+ td_name[]) array which is limited to MAXCOMLEN in length. We also reuse that same name for the interrupt name in vmstat -i. Note that in 4.x before ithreads if you had a shared interrupt the vmstat -i output just said "mux" (check vmstat -i on ref4 for irq2) and did not tell you any of the devices at all, so a partial list is at least better than no list. We could generate a separate interrupt name for vmstat -i vs the ithread name, it's just a matter of space. We might do this if we move away from having static ithreads (i.e. having a pool of ithreads that are a specialized taskqueue that execute interrupt events). In that case the name would no longer be used for threads at all, so it could just be made longer, or possibly dynamically allocated. -- John Baldwin