[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>
This commit is contained in:
parent
30d77c3e1c
commit
3283942b71
|
@ -17,6 +17,7 @@ enum interruption_class {
|
||||||
EXTINT_IUC,
|
EXTINT_IUC,
|
||||||
IOINT_QAI,
|
IOINT_QAI,
|
||||||
IOINT_QDI,
|
IOINT_QDI,
|
||||||
|
IOINT_DAS,
|
||||||
NMI_NMI,
|
NMI_NMI,
|
||||||
NR_IRQS,
|
NR_IRQS,
|
||||||
};
|
};
|
||||||
|
|
|
@ -34,6 +34,7 @@ static const struct irq_class intrclass_names[] = {
|
||||||
{.name = "IUC", .desc = "[EXT] IUCV" },
|
{.name = "IUC", .desc = "[EXT] IUCV" },
|
||||||
{.name = "QAI", .desc = "[I/O] QDIO Adapter Interrupt" },
|
{.name = "QAI", .desc = "[I/O] QDIO Adapter Interrupt" },
|
||||||
{.name = "QDI", .desc = "[I/O] QDIO Interrupt" },
|
{.name = "QDI", .desc = "[I/O] QDIO Interrupt" },
|
||||||
|
{.name = "DAS", .desc = "[I/O] DASD" },
|
||||||
{.name = "NMI", .desc = "[NMI] Machine Check" },
|
{.name = "NMI", .desc = "[NMI] Machine Check" },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
#define KMSG_COMPONENT "dasd"
|
#define KMSG_COMPONENT "dasd"
|
||||||
#define pr_fmt(fmt) KMSG_COMPONENT ": " fmt
|
#define pr_fmt(fmt) KMSG_COMPONENT ": " fmt
|
||||||
|
|
||||||
|
#include <linux/kernel_stat.h>
|
||||||
#include <linux/kmod.h>
|
#include <linux/kmod.h>
|
||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
#include <linux/interrupt.h>
|
#include <linux/interrupt.h>
|
||||||
|
@ -1076,6 +1077,7 @@ void dasd_int_handler(struct ccw_device *cdev, unsigned long intparm,
|
||||||
unsigned long long now;
|
unsigned long long now;
|
||||||
int expires;
|
int expires;
|
||||||
|
|
||||||
|
kstat_cpu(smp_processor_id()).irqs[IOINT_DAS]++;
|
||||||
if (IS_ERR(irb)) {
|
if (IS_ERR(irb)) {
|
||||||
switch (PTR_ERR(irb)) {
|
switch (PTR_ERR(irb)) {
|
||||||
case -EIO:
|
case -EIO:
|
||||||
|
|
Loading…
Reference in a new issue