diff options
author | Jan Glauber <jang@linux.vnet.ibm.com> | 2011-01-05 06:47:29 -0500 |
---|---|---|
committer | Martin Schwidefsky <sky@mschwide.boeblingen.de.ibm.com> | 2011-01-05 06:47:25 -0500 |
commit | 30d77c3e1cbdff304b16ae02cb56baaa308e42fd (patch) | |
tree | c1f4babe1ff6a0794591311b634ae1626653e95b | |
parent | 052ff461c8427629aee887ccc27478fc7373237c (diff) |
[S390] qdio: add qdio interrupts to interrupt statistics
Count traditional qdio interrupts and adapter interrupts for qdio
in the interrupt statistics.
Signed-off-by: Jan Glauber <jang@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
-rw-r--r-- | arch/s390/include/asm/irq.h | 2 | ||||
-rw-r--r-- | arch/s390/kernel/irq.c | 2 | ||||
-rw-r--r-- | drivers/s390/cio/qdio_main.c | 2 | ||||
-rw-r--r-- | drivers/s390/cio/qdio_thinint.c | 2 |
4 files changed, 8 insertions, 0 deletions
diff --git a/arch/s390/include/asm/irq.h b/arch/s390/include/asm/irq.h index f65faf63ab3a..28cfe5905a00 100644 --- a/arch/s390/include/asm/irq.h +++ b/arch/s390/include/asm/irq.h | |||
@@ -15,6 +15,8 @@ enum interruption_class { | |||
15 | EXTINT_VRT, | 15 | EXTINT_VRT, |
16 | EXTINT_SCP, | 16 | EXTINT_SCP, |
17 | EXTINT_IUC, | 17 | EXTINT_IUC, |
18 | IOINT_QAI, | ||
19 | IOINT_QDI, | ||
18 | NMI_NMI, | 20 | NMI_NMI, |
19 | NR_IRQS, | 21 | NR_IRQS, |
20 | }; | 22 | }; |
diff --git a/arch/s390/kernel/irq.c b/arch/s390/kernel/irq.c index 9bd049b8f997..61d8098aa0b6 100644 --- a/arch/s390/kernel/irq.c +++ b/arch/s390/kernel/irq.c | |||
@@ -32,6 +32,8 @@ static const struct irq_class intrclass_names[] = { | |||
32 | {.name = "VRT", .desc = "[EXT] Virtio" }, | 32 | {.name = "VRT", .desc = "[EXT] Virtio" }, |
33 | {.name = "SCP", .desc = "[EXT] Service Call" }, | 33 | {.name = "SCP", .desc = "[EXT] Service Call" }, |
34 | {.name = "IUC", .desc = "[EXT] IUCV" }, | 34 | {.name = "IUC", .desc = "[EXT] IUCV" }, |
35 | {.name = "QAI", .desc = "[I/O] QDIO Adapter Interrupt" }, | ||
36 | {.name = "QDI", .desc = "[I/O] QDIO Interrupt" }, | ||
35 | {.name = "NMI", .desc = "[NMI] Machine Check" }, | 37 | {.name = "NMI", .desc = "[NMI] Machine Check" }, |
36 | }; | 38 | }; |
37 | 39 | ||
diff --git a/drivers/s390/cio/qdio_main.c b/drivers/s390/cio/qdio_main.c index 5fcfa7f9e9ef..194ea8c182b2 100644 --- a/drivers/s390/cio/qdio_main.c +++ b/drivers/s390/cio/qdio_main.c | |||
@@ -14,6 +14,7 @@ | |||
14 | #include <linux/timer.h> | 14 | #include <linux/timer.h> |
15 | #include <linux/delay.h> | 15 | #include <linux/delay.h> |
16 | #include <linux/gfp.h> | 16 | #include <linux/gfp.h> |
17 | #include <linux/kernel_stat.h> | ||
17 | #include <asm/atomic.h> | 18 | #include <asm/atomic.h> |
18 | #include <asm/debug.h> | 19 | #include <asm/debug.h> |
19 | #include <asm/qdio.h> | 20 | #include <asm/qdio.h> |
@@ -970,6 +971,7 @@ void qdio_int_handler(struct ccw_device *cdev, unsigned long intparm, | |||
970 | return; | 971 | return; |
971 | } | 972 | } |
972 | 973 | ||
974 | kstat_cpu(smp_processor_id()).irqs[IOINT_QDI]++; | ||
973 | if (irq_ptr->perf_stat_enabled) | 975 | if (irq_ptr->perf_stat_enabled) |
974 | irq_ptr->perf_stat.qdio_int++; | 976 | irq_ptr->perf_stat.qdio_int++; |
975 | 977 | ||
diff --git a/drivers/s390/cio/qdio_thinint.c b/drivers/s390/cio/qdio_thinint.c index 5d9c66627b6e..64b59a58a1cd 100644 --- a/drivers/s390/cio/qdio_thinint.c +++ b/drivers/s390/cio/qdio_thinint.c | |||
@@ -8,6 +8,7 @@ | |||
8 | */ | 8 | */ |
9 | #include <linux/io.h> | 9 | #include <linux/io.h> |
10 | #include <linux/slab.h> | 10 | #include <linux/slab.h> |
11 | #include <linux/kernel_stat.h> | ||
11 | #include <asm/atomic.h> | 12 | #include <asm/atomic.h> |
12 | #include <asm/debug.h> | 13 | #include <asm/debug.h> |
13 | #include <asm/qdio.h> | 14 | #include <asm/qdio.h> |
@@ -127,6 +128,7 @@ static void tiqdio_thinint_handler(void *alsi, void *data) | |||
127 | struct qdio_q *q; | 128 | struct qdio_q *q; |
128 | 129 | ||
129 | last_ai_time = S390_lowcore.int_clock; | 130 | last_ai_time = S390_lowcore.int_clock; |
131 | kstat_cpu(smp_processor_id()).irqs[IOINT_QAI]++; | ||
130 | 132 | ||
131 | /* | 133 | /* |
132 | * SVS only when needed: issue SVS to benefit from iqdio interrupt | 134 | * SVS only when needed: issue SVS to benefit from iqdio interrupt |