Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 355eb402 authored by Heiko Carstens's avatar Heiko Carstens Committed by Martin Schwidefsky
Browse files

[S390] claw: add support for irq statistics



Add support for CLAW I/O interrupt statistics in /proc/interrupts.

Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent 096a6168
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -23,6 +23,7 @@ enum interruption_class {
	IOINT_TAP,
	IOINT_TAP,
	IOINT_VMR,
	IOINT_VMR,
	IOINT_LCS,
	IOINT_LCS,
	IOINT_CLW,
	NMI_NMI,
	NMI_NMI,
	NR_IRQS,
	NR_IRQS,
};
};
+1 −0
Original line number Original line Diff line number Diff line
@@ -40,6 +40,7 @@ static const struct irq_class intrclass_names[] = {
	{.name = "TAP", .desc = "[I/O] Tape" },
	{.name = "TAP", .desc = "[I/O] Tape" },
	{.name = "VMR", .desc = "[I/O] Unit Record Devices" },
	{.name = "VMR", .desc = "[I/O] Unit Record Devices" },
	{.name = "LCS", .desc = "[I/O] LCS" },
	{.name = "LCS", .desc = "[I/O] LCS" },
	{.name = "CLW", .desc = "[I/O] CLAW" },
	{.name = "NMI", .desc = "[NMI] Machine Check" },
	{.name = "NMI", .desc = "[NMI] Machine Check" },
};
};


+2 −0
Original line number Original line Diff line number Diff line
@@ -63,6 +63,7 @@


#define KMSG_COMPONENT "claw"
#define KMSG_COMPONENT "claw"


#include <linux/kernel_stat.h>
#include <asm/ccwdev.h>
#include <asm/ccwdev.h>
#include <asm/ccwgroup.h>
#include <asm/ccwgroup.h>
#include <asm/debug.h>
#include <asm/debug.h>
@@ -640,6 +641,7 @@ claw_irq_handler(struct ccw_device *cdev,
        struct claw_env  *p_env;
        struct claw_env  *p_env;
        struct chbk *p_ch_r=NULL;
        struct chbk *p_ch_r=NULL;


	kstat_cpu(smp_processor_id()).irqs[IOINT_CLW]++;
	CLAW_DBF_TEXT(4, trace, "clawirq");
	CLAW_DBF_TEXT(4, trace, "clawirq");
        /* Bypass all 'unsolicited interrupts' */
        /* Bypass all 'unsolicited interrupts' */
	privptr = dev_get_drvdata(&cdev->dev);
	privptr = dev_get_drvdata(&cdev->dev);