Commit 65b4e403 authored by Sebastian Ott's avatar Sebastian Ott Committed by Martin Schwidefsky

[S390] chsc_sch: add support for irq statistics

Add support for CHSC I/O interrupt statistics in /proc/interrupts.
Signed-off-by: default avatarSebastian Ott <sebott@linux.vnet.ibm.com>
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent dad572e3
...@@ -28,6 +28,7 @@ enum interruption_class { ...@@ -28,6 +28,7 @@ enum interruption_class {
IOINT_CLW, IOINT_CLW,
IOINT_CTC, IOINT_CTC,
IOINT_APB, IOINT_APB,
IOINT_CSC,
NMI_NMI, NMI_NMI,
NR_IRQS, NR_IRQS,
}; };
......
...@@ -53,6 +53,7 @@ static const struct irq_class intrclass_names[] = { ...@@ -53,6 +53,7 @@ static const struct irq_class intrclass_names[] = {
{.name = "CLW", .desc = "[I/O] CLAW" }, {.name = "CLW", .desc = "[I/O] CLAW" },
{.name = "CTC", .desc = "[I/O] CTC" }, {.name = "CTC", .desc = "[I/O] CTC" },
{.name = "APB", .desc = "[I/O] AP Bus" }, {.name = "APB", .desc = "[I/O] AP Bus" },
{.name = "CSC", .desc = "[I/O] CHSC Subchannel" },
{.name = "NMI", .desc = "[NMI] Machine Check" }, {.name = "NMI", .desc = "[NMI] Machine Check" },
}; };
......
/* /*
* Driver for s390 chsc subchannels * Driver for s390 chsc subchannels
* *
* Copyright IBM Corp. 2008, 2009 * Copyright IBM Corp. 2008, 2011
* *
* Author(s): Cornelia Huck <cornelia.huck@de.ibm.com> * Author(s): Cornelia Huck <cornelia.huck@de.ibm.com>
* *
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
#include <linux/module.h> #include <linux/module.h>
#include <linux/uaccess.h> #include <linux/uaccess.h>
#include <linux/miscdevice.h> #include <linux/miscdevice.h>
#include <linux/kernel_stat.h>
#include <asm/compat.h> #include <asm/compat.h>
#include <asm/cio.h> #include <asm/cio.h>
...@@ -56,6 +57,8 @@ static void chsc_subchannel_irq(struct subchannel *sch) ...@@ -56,6 +57,8 @@ static void chsc_subchannel_irq(struct subchannel *sch)
CHSC_LOG(4, "irb"); CHSC_LOG(4, "irb");
CHSC_LOG_HEX(4, irb, sizeof(*irb)); CHSC_LOG_HEX(4, irb, sizeof(*irb));
kstat_cpu(smp_processor_id()).irqs[IOINT_CSC]++;
/* Copy irb to provided request and set done. */ /* Copy irb to provided request and set done. */
if (!request) { if (!request) {
CHSC_MSG(0, "Interrupt on sch 0.%x.%04x with no request\n", CHSC_MSG(0, "Interrupt on sch 0.%x.%04x with no request\n",
......
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