s390/pci: gather statistics for floating vs directed irqs

Gather statistics to distinguish floating and directed interrupts.

Signed-off-by: Sebastian Ott <sebott@linux.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
Sebastian Ott 2018-11-22 14:08:33 +01:00 committed by Martin Schwidefsky
parent 914b7dd07e
commit 07e3ec3acb
3 changed files with 10 additions and 6 deletions

View File

@ -59,7 +59,8 @@ enum interruption_class {
IRQIO_VIR,
IRQIO_QAI,
IRQIO_APB,
IRQIO_PCI,
IRQIO_PCF,
IRQIO_PCD,
IRQIO_MSI,
IRQIO_VAI,
IRQIO_GAL,

View File

@ -85,7 +85,8 @@ static const struct irq_class irqclass_sub_desc[] = {
{.irq = IRQIO_VIR, .name = "VIR", .desc = "[I/O] Virtual I/O Devices"},
{.irq = IRQIO_QAI, .name = "QAI", .desc = "[AIO] QDIO Adapter Interrupt"},
{.irq = IRQIO_APB, .name = "APB", .desc = "[AIO] AP Bus"},
{.irq = IRQIO_PCI, .name = "PCI", .desc = "[AIO] PCI Interrupt"},
{.irq = IRQIO_PCF, .name = "PCF", .desc = "[AIO] PCI Floating Interrupt"},
{.irq = IRQIO_PCD, .name = "PCD", .desc = "[AIO] PCI Directed Interrupt"},
{.irq = IRQIO_MSI, .name = "MSI", .desc = "[AIO] MSI Interrupt"},
{.irq = IRQIO_VAI, .name = "VAI", .desc = "[AIO] Virtual I/O Devices AI"},
{.irq = IRQIO_GAL, .name = "GAL", .desc = "[AIO] GIB Alert"},

View File

@ -188,11 +188,13 @@ static void zpci_handle_fallback_irq(void)
static void zpci_directed_irq_handler(struct airq_struct *airq, bool floating)
{
inc_irq_stat(IRQIO_PCI);
if (floating)
if (floating) {
inc_irq_stat(IRQIO_PCF);
zpci_handle_fallback_irq();
else
} else {
inc_irq_stat(IRQIO_PCD);
zpci_handle_cpu_local_irq(true);
}
}
static void zpci_floating_irq_handler(struct airq_struct *airq, bool floating)
@ -201,7 +203,7 @@ static void zpci_floating_irq_handler(struct airq_struct *airq, bool floating)
struct airq_iv *aibv;
int irqs_on = 0;
inc_irq_stat(IRQIO_PCI);
inc_irq_stat(IRQIO_PCF);
for (si = 0;;) {
/* Scan adapter summary indicator bit vector */
si = airq_iv_scan(zpci_sbv, si, airq_iv_end(zpci_sbv));