From owner-freebsd-mips@FreeBSD.ORG Tue Apr 20 14:48:13 2010 Return-Path: Delivered-To: freebsd-mips@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 829EA1065670; Tue, 20 Apr 2010 14:48:13 +0000 (UTC) (envelope-from rrs@lakerest.net) Received: from lakerest.net (unknown [IPv6:2001:240:585:2:213:d4ff:fef3:2d8d]) by mx1.freebsd.org (Postfix) with ESMTP id E4D0D8FC1D; Tue, 20 Apr 2010 14:48:12 +0000 (UTC) Received: from [32.177.69.229] ([32.177.69.229]) (authenticated bits=0) by lakerest.net (8.14.3/8.14.3) with ESMTP id o3KElxMT055258 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NOT); Tue, 20 Apr 2010 10:48:08 -0400 (EDT) (envelope-from rrs@lakerest.net) Message-Id: From: Randall Stewart To: "C. Jayachandran" In-Reply-To: Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit Mime-Version: 1.0 (Apple Message framework v936) Date: Tue, 20 Apr 2010 07:47:53 -0700 References: X-Mailer: Apple Mail (2.936) Cc: freebsd-mips@freebsd.org Subject: Re: [PATCH] Account RMI XLR interrupts X-BeenThere: freebsd-mips@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to MIPS List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Apr 2010 14:48:13 -0000 Yeah.. I made sure that it was big enough ;-) R On Apr 20, 2010, at 7:23 AM, C. Jayachandran wrote: > Please ignore the first part of the mail about array size, I seem to > have missed the definition in rmi files. > > JC. > > On Tue, Apr 20, 2010 at 7:48 PM, C. Jayachandran > wrote: >> On Tue, Apr 20, 2010 at 5:06 PM, Rui Paulo >> wrote: >>> Hi, >>> The following patch accounts interrupts on the XLR and makes >>> vmstat -i and systat work display useful data. I think the >>> commented out atomic inc can go away, but I'm not sure. >>> >>> Here's an example: >>> >>> $ vmstat -i >>> interrupt total rate >>> int16: 56118 984 >>> int17: 214 3 >>> Total 56332 988 >>> >>> int16 is the timer and int17 is the network interface (rge1). >> >> Are you sure that the mips_intr_events array has the size to hold all >> the XLR interrupts? The XLR has a slightly different scheme (with >> COP0 EIRR EIMR registers) and can have upto 64 interrupts. >> >> A mechanism to unify the interrupt, and handling the XLR PIC may be >> a good idea. >> >> The network packets come on MSGRING interrupt - only link status etc >> will come on the GMAC interrupt. >> >> JC. >> >> >>> Index: intr_machdep.c >>> =================================================================== >>> --- intr_machdep.c (revision 206791) >>> +++ intr_machdep.c (working copy) >>> @@ -157,28 +157,17 @@ >>> for (i = sizeof(eirr) * 8 - 1; i >= 0; i--) { >>> if ((eirr & (1ULL << i)) == 0) >>> continue; >>> ie = mips_intr_events[i]; >>> /* atomic_add_long(mih->cntp, 1); */ >>> + /* Don't account special IRQs */ >>> + switch (i) { >>> + case IRQ_IPI: >>> + case IRQ_MSGRING: >>> + break; >>> + default: >>> + mips_intrcnt_inc(mips_intr_counters[i]); >>> + } >>> >>> write_c0_eirr64(1ULL << i); >>> pic_ack(i, 0); >>> >>> Regards, >>> -- >>> Rui Paulo >> > > > > -- > C. Jayachandran c.jayachandran@gmail.com > _______________________________________________ > freebsd-mips@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-mips > To unsubscribe, send any mail to "freebsd-mips- > unsubscribe@freebsd.org" > ------------------------------ Randall Stewart 803-317-4952 (cell) 803-345-0391(direct)