[S390] dasd: add support for irq statistics
authorHeiko Carstens <heiko.carstens@de.ibm.com>
Wed, 5 Jan 2011 11:47:30 +0000 (12:47 +0100)
committerMartin Schwidefsky <sky@mschwide.boeblingen.de.ibm.com>
Wed, 5 Jan 2011 11:47:25 +0000 (12:47 +0100)
Add support for DASD 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>
arch/s390/include/asm/irq.h
arch/s390/kernel/irq.c
drivers/s390/block/dasd.c

index 28cfe5905a003f20b7c98f12f3689b2668051988..082ef0cce287870a6a491b74c99c10035d241ed1 100644 (file)
@@ -17,6 +17,7 @@ enum interruption_class {
        EXTINT_IUC,
        IOINT_QAI,
        IOINT_QDI,
+       IOINT_DAS,
        NMI_NMI,
        NR_IRQS,
 };
index 61d8098aa0b611adaaac107824cfce5060d72b66..313fe83a443a49ef832143de2931c658c8fdf021 100644 (file)
@@ -34,6 +34,7 @@ static const struct irq_class intrclass_names[] = {
        {.name = "IUC", .desc = "[EXT] IUCV" },
        {.name = "QAI", .desc = "[I/O] QDIO Adapter Interrupt" },
        {.name = "QDI", .desc = "[I/O] QDIO Interrupt" },
+       {.name = "DAS", .desc = "[I/O] DASD" },
        {.name = "NMI", .desc = "[NMI] Machine Check" },
 };
 
index fb613d70c2cbb32e381bba6951568bc217ac8d5c..faa7d425cb9cbc1a2e363a248c1a743435791799 100644 (file)
@@ -11,6 +11,7 @@
 #define KMSG_COMPONENT "dasd"
 #define pr_fmt(fmt) KMSG_COMPONENT ": " fmt
 
+#include <linux/kernel_stat.h>
 #include <linux/kmod.h>
 #include <linux/init.h>
 #include <linux/interrupt.h>
@@ -1076,6 +1077,7 @@ void dasd_int_handler(struct ccw_device *cdev, unsigned long intparm,
        unsigned long long now;
        int expires;
 
+       kstat_cpu(smp_processor_id()).irqs[IOINT_DAS]++;
        if (IS_ERR(irb)) {
                switch (PTR_ERR(irb)) {
                case -EIO: