[S390] ap bus: add support for irq statistics
Add support for AP Bus I/O interrupt statistics in /proc/interrupts. Signed-off-by: Holger Dengler <hd@linux.vnet.ibm.com> Signed-off-by: Felix Beck <felix.beck@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
committed by
Martin Schwidefsky
parent
85b81cdd0b
commit
62d146ffe3
@@ -25,6 +25,7 @@ enum interruption_class {
|
|||||||
IOINT_LCS,
|
IOINT_LCS,
|
||||||
IOINT_CLW,
|
IOINT_CLW,
|
||||||
IOINT_CTC,
|
IOINT_CTC,
|
||||||
|
IOINT_APB,
|
||||||
NMI_NMI,
|
NMI_NMI,
|
||||||
NR_IRQS,
|
NR_IRQS,
|
||||||
};
|
};
|
||||||
|
@@ -42,6 +42,7 @@ static const struct irq_class intrclass_names[] = {
|
|||||||
{.name = "LCS", .desc = "[I/O] LCS" },
|
{.name = "LCS", .desc = "[I/O] LCS" },
|
||||||
{.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 = "NMI", .desc = "[NMI] Machine Check" },
|
{.name = "NMI", .desc = "[NMI] Machine Check" },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -27,6 +27,7 @@
|
|||||||
#define KMSG_COMPONENT "ap"
|
#define KMSG_COMPONENT "ap"
|
||||||
#define pr_fmt(fmt) KMSG_COMPONENT ": " fmt
|
#define pr_fmt(fmt) KMSG_COMPONENT ": " fmt
|
||||||
|
|
||||||
|
#include <linux/kernel_stat.h>
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
@@ -1042,6 +1043,7 @@ out:
|
|||||||
|
|
||||||
static void ap_interrupt_handler(void *unused1, void *unused2)
|
static void ap_interrupt_handler(void *unused1, void *unused2)
|
||||||
{
|
{
|
||||||
|
kstat_cpu(smp_processor_id()).irqs[IOINT_APB]++;
|
||||||
tasklet_schedule(&ap_tasklet);
|
tasklet_schedule(&ap_tasklet);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user