Explorar el Código

[S390] dasd: add support for irq statistics

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>
Heiko Carstens hace 14 años
padre
commit
3283942b71
Se han modificado 3 ficheros con 4 adiciones y 0 borrados
  1. 1 0
      arch/s390/include/asm/irq.h
  2. 1 0
      arch/s390/kernel/irq.c
  3. 2 0
      drivers/s390/block/dasd.c

+ 1 - 0
arch/s390/include/asm/irq.h

@@ -17,6 +17,7 @@ enum interruption_class {
 	EXTINT_IUC,
 	IOINT_QAI,
 	IOINT_QDI,
+	IOINT_DAS,
 	NMI_NMI,
 	NR_IRQS,
 };

+ 1 - 0
arch/s390/kernel/irq.c

@@ -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" },
 };
 

+ 2 - 0
drivers/s390/block/dasd.c

@@ -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: