aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHeiko Carstens <heiko.carstens@de.ibm.com>2011-01-05 06:47:34 -0500
committerMartin Schwidefsky <sky@mschwide.boeblingen.de.ibm.com>2011-01-05 06:47:26 -0500
commitf48198d592b0d680b9677bd69edd2290cd0c1f4f (patch)
tree06ef549b2781c90d1841427a83343d9990e3da8f
parentb86651721f18f40319efe94ed3eac2d26682e5b9 (diff)
[S390] vmur: add support for irq statistics
Add support for VMUR I/O interrupt statistics in /proc/interrupts. Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
-rw-r--r--arch/s390/include/asm/irq.h1
-rw-r--r--arch/s390/kernel/irq.c1
-rw-r--r--drivers/s390/char/vmur.c2
3 files changed, 4 insertions, 0 deletions
diff --git a/arch/s390/include/asm/irq.h b/arch/s390/include/asm/irq.h
index 6986343a566f..6c9b55681eab 100644
--- a/arch/s390/include/asm/irq.h
+++ b/arch/s390/include/asm/irq.h
@@ -21,6 +21,7 @@ enum interruption_class {
21 IOINT_C15, 21 IOINT_C15,
22 IOINT_C70, 22 IOINT_C70,
23 IOINT_TAP, 23 IOINT_TAP,
24 IOINT_VMR,
24 NMI_NMI, 25 NMI_NMI,
25 NR_IRQS, 26 NR_IRQS,
26}; 27};
diff --git a/arch/s390/kernel/irq.c b/arch/s390/kernel/irq.c
index 5d7b6fbb3c13..ae726d1ae430 100644
--- a/arch/s390/kernel/irq.c
+++ b/arch/s390/kernel/irq.c
@@ -38,6 +38,7 @@ static const struct irq_class intrclass_names[] = {
38 {.name = "C15", .desc = "[I/O] 3215" }, 38 {.name = "C15", .desc = "[I/O] 3215" },
39 {.name = "C70", .desc = "[I/O] 3270" }, 39 {.name = "C70", .desc = "[I/O] 3270" },
40 {.name = "TAP", .desc = "[I/O] Tape" }, 40 {.name = "TAP", .desc = "[I/O] Tape" },
41 {.name = "VMR", .desc = "[I/O] Unit Record Devices" },
41 {.name = "NMI", .desc = "[NMI] Machine Check" }, 42 {.name = "NMI", .desc = "[NMI] Machine Check" },
42}; 43};
43 44
diff --git a/drivers/s390/char/vmur.c b/drivers/s390/char/vmur.c
index f7e4ae6bf15a..caef1757341d 100644
--- a/drivers/s390/char/vmur.c
+++ b/drivers/s390/char/vmur.c
@@ -11,6 +11,7 @@
11#define KMSG_COMPONENT "vmur" 11#define KMSG_COMPONENT "vmur"
12#define pr_fmt(fmt) KMSG_COMPONENT ": " fmt 12#define pr_fmt(fmt) KMSG_COMPONENT ": " fmt
13 13
14#include <linux/kernel_stat.h>
14#include <linux/cdev.h> 15#include <linux/cdev.h>
15#include <linux/slab.h> 16#include <linux/slab.h>
16 17
@@ -302,6 +303,7 @@ static void ur_int_handler(struct ccw_device *cdev, unsigned long intparm,
302{ 303{
303 struct urdev *urd; 304 struct urdev *urd;
304 305
306 kstat_cpu(smp_processor_id()).irqs[IOINT_VMR]++;
305 TRACE("ur_int_handler: intparm=0x%lx cstat=%02x dstat=%02x res=%u\n", 307 TRACE("ur_int_handler: intparm=0x%lx cstat=%02x dstat=%02x res=%u\n",
306 intparm, irb->scsw.cmd.cstat, irb->scsw.cmd.dstat, 308 intparm, irb->scsw.cmd.cstat, irb->scsw.cmd.dstat,
307 irb->scsw.cmd.count); 309 irb->scsw.cmd.count);