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>
