Commit 30d77c3e authored by Jan Glauber's avatar Jan Glauber Committed by Martin Schwidefsky

[S390] qdio: add qdio interrupts to interrupt statistics

Count traditional qdio interrupts and adapter interrupts for qdio
in the interrupt statistics.
Signed-off-by: default avatarJan Glauber <jang@linux.vnet.ibm.com>
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent 052ff461
...@@ -15,6 +15,8 @@ enum interruption_class { ...@@ -15,6 +15,8 @@ enum interruption_class {
EXTINT_VRT, EXTINT_VRT,
EXTINT_SCP, EXTINT_SCP,
EXTINT_IUC, EXTINT_IUC,
IOINT_QAI,
IOINT_QDI,
NMI_NMI, NMI_NMI,
NR_IRQS, NR_IRQS,
}; };
......
...@@ -32,6 +32,8 @@ static const struct irq_class intrclass_names[] = { ...@@ -32,6 +32,8 @@ static const struct irq_class intrclass_names[] = {
{.name = "VRT", .desc = "[EXT] Virtio" }, {.name = "VRT", .desc = "[EXT] Virtio" },
{.name = "SCP", .desc = "[EXT] Service Call" }, {.name = "SCP", .desc = "[EXT] Service Call" },
{.name = "IUC", .desc = "[EXT] IUCV" }, {.name = "IUC", .desc = "[EXT] IUCV" },
{.name = "QAI", .desc = "[I/O] QDIO Adapter Interrupt" },
{.name = "QDI", .desc = "[I/O] QDIO Interrupt" },
{.name = "NMI", .desc = "[NMI] Machine Check" }, {.name = "NMI", .desc = "[NMI] Machine Check" },
}; };
......
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
#include <linux/timer.h> #include <linux/timer.h>
#include <linux/delay.h> #include <linux/delay.h>
#include <linux/gfp.h> #include <linux/gfp.h>
#include <linux/kernel_stat.h>
#include <asm/atomic.h> #include <asm/atomic.h>
#include <asm/debug.h> #include <asm/debug.h>
#include <asm/qdio.h> #include <asm/qdio.h>
...@@ -970,6 +971,7 @@ void qdio_int_handler(struct ccw_device *cdev, unsigned long intparm, ...@@ -970,6 +971,7 @@ void qdio_int_handler(struct ccw_device *cdev, unsigned long intparm,
return; return;
} }
kstat_cpu(smp_processor_id()).irqs[IOINT_QDI]++;
if (irq_ptr->perf_stat_enabled) if (irq_ptr->perf_stat_enabled)
irq_ptr->perf_stat.qdio_int++; irq_ptr->perf_stat.qdio_int++;
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
*/ */
#include <linux/io.h> #include <linux/io.h>
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/kernel_stat.h>
#include <asm/atomic.h> #include <asm/atomic.h>
#include <asm/debug.h> #include <asm/debug.h>
#include <asm/qdio.h> #include <asm/qdio.h>
...@@ -127,6 +128,7 @@ static void tiqdio_thinint_handler(void *alsi, void *data) ...@@ -127,6 +128,7 @@ static void tiqdio_thinint_handler(void *alsi, void *data)
struct qdio_q *q; struct qdio_q *q;
last_ai_time = S390_lowcore.int_clock; last_ai_time = S390_lowcore.int_clock;
kstat_cpu(smp_processor_id()).irqs[IOINT_QAI]++;
/* /*
* SVS only when needed: issue SVS to benefit from iqdio interrupt * SVS only when needed: issue SVS to benefit from iqdio interrupt
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment