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

[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
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -15,6 +15,8 @@ enum interruption_class {
	EXTINT_VRT,
	EXTINT_SCP,
	EXTINT_IUC,
	IOINT_QAI,
	IOINT_QDI,
	NMI_NMI,
	NR_IRQS,
};
+2 −0
Original line number Diff line number Diff line
@@ -32,6 +32,8 @@ static const struct irq_class intrclass_names[] = {
	{.name = "VRT", .desc = "[EXT] Virtio" },
	{.name = "SCP", .desc = "[EXT] Service Call" },
	{.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" },
};

+2 −0
Original line number Diff line number Diff line
@@ -14,6 +14,7 @@
#include <linux/timer.h>
#include <linux/delay.h>
#include <linux/gfp.h>
#include <linux/kernel_stat.h>
#include <asm/atomic.h>
#include <asm/debug.h>
#include <asm/qdio.h>
@@ -970,6 +971,7 @@ void qdio_int_handler(struct ccw_device *cdev, unsigned long intparm,
		return;
	}

	kstat_cpu(smp_processor_id()).irqs[IOINT_QDI]++;
	if (irq_ptr->perf_stat_enabled)
		irq_ptr->perf_stat.qdio_int++;

+2 −0
Original line number Diff line number Diff line
@@ -8,6 +8,7 @@
 */
#include <linux/io.h>
#include <linux/slab.h>
#include <linux/kernel_stat.h>
#include <asm/atomic.h>
#include <asm/debug.h>
#include <asm/qdio.h>
@@ -127,6 +128,7 @@ static void tiqdio_thinint_handler(void *alsi, void *data)
	struct qdio_q *q;

	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