소스 검색

[S390] vmur: add support for irq statistics

Add support for VMUR 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 14 년 전
부모
커밋
f48198d592
3개의 변경된 파일4개의 추가작업 그리고 0개의 파일을 삭제
  1. 1 0
      arch/s390/include/asm/irq.h
  2. 1 0
      arch/s390/kernel/irq.c
  3. 2 0
      drivers/s390/char/vmur.c

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

@@ -21,6 +21,7 @@ enum interruption_class {
 	IOINT_C15,
 	IOINT_C70,
 	IOINT_TAP,
+	IOINT_VMR,
 	NMI_NMI,
 	NR_IRQS,
 };

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

@@ -38,6 +38,7 @@ static const struct irq_class intrclass_names[] = {
 	{.name = "C15", .desc = "[I/O] 3215" },
 	{.name = "C70", .desc = "[I/O] 3270" },
 	{.name = "TAP", .desc = "[I/O] Tape" },
+	{.name = "VMR", .desc = "[I/O] Unit Record Devices" },
 	{.name = "NMI", .desc = "[NMI] Machine Check" },
 };
 

+ 2 - 0
drivers/s390/char/vmur.c

@@ -11,6 +11,7 @@
 #define KMSG_COMPONENT "vmur"
 #define pr_fmt(fmt) KMSG_COMPONENT ": " fmt
 
+#include <linux/kernel_stat.h>
 #include <linux/cdev.h>
 #include <linux/slab.h>
 
@@ -302,6 +303,7 @@ static void ur_int_handler(struct ccw_device *cdev, unsigned long intparm,
 {
 	struct urdev *urd;
 
+	kstat_cpu(smp_processor_id()).irqs[IOINT_VMR]++;
 	TRACE("ur_int_handler: intparm=0x%lx cstat=%02x dstat=%02x res=%u\n",
 	      intparm, irb->scsw.cmd.cstat, irb->scsw.cmd.dstat,
 	      irb->scsw.cmd.count);