Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 20 Apr 2010 12:36:31 +0100
From:      Rui Paulo <rpaulo@freebsd.org>
To:        freebsd-mips@freebsd.org
Subject:   [PATCH] Account RMI XLR interrupts
Message-ID:  <BAAA25BC-6094-4B5B-9C83-A330933EBA51@freebsd.org>

next in thread | raw e-mail | index | archive | help
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).

Index: intr_machdep.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- intr_machdep.c	(revision 206791)
+++ intr_machdep.c	(working copy)
@@ -157,28 +157,17 @@
 	for (i =3D sizeof(eirr) * 8 - 1; i >=3D 0; i--) {
 		if ((eirr & (1ULL << i)) =3D=3D 0)
 			continue;
 		ie =3D 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]);
+		}
=20
 		write_c0_eirr64(1ULL << i);
 		pic_ack(i, 0);

Regards,
--
Rui Paulo





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?BAAA25BC-6094-4B5B-9C83-A330933EBA51>