Skip to content

Commit 07e3ec3

Browse files
sebottMartin Schwidefsky
authored andcommitted
s390/pci: gather statistics for floating vs directed irqs
Gather statistics to distinguish floating and directed interrupts. Signed-off-by: Sebastian Ott <[email protected]> Signed-off-by: Martin Schwidefsky <[email protected]>
1 parent 914b7dd commit 07e3ec3

File tree

3 files changed

+10
-6
lines changed

3 files changed

+10
-6
lines changed

arch/s390/include/asm/irq.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,8 @@ enum interruption_class {
5959
IRQIO_VIR,
6060
IRQIO_QAI,
6161
IRQIO_APB,
62-
IRQIO_PCI,
62+
IRQIO_PCF,
63+
IRQIO_PCD,
6364
IRQIO_MSI,
6465
IRQIO_VAI,
6566
IRQIO_GAL,

arch/s390/kernel/irq.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,8 @@ static const struct irq_class irqclass_sub_desc[] = {
8585
{.irq = IRQIO_VIR, .name = "VIR", .desc = "[I/O] Virtual I/O Devices"},
8686
{.irq = IRQIO_QAI, .name = "QAI", .desc = "[AIO] QDIO Adapter Interrupt"},
8787
{.irq = IRQIO_APB, .name = "APB", .desc = "[AIO] AP Bus"},
88-
{.irq = IRQIO_PCI, .name = "PCI", .desc = "[AIO] PCI Interrupt"},
88+
{.irq = IRQIO_PCF, .name = "PCF", .desc = "[AIO] PCI Floating Interrupt"},
89+
{.irq = IRQIO_PCD, .name = "PCD", .desc = "[AIO] PCI Directed Interrupt"},
8990
{.irq = IRQIO_MSI, .name = "MSI", .desc = "[AIO] MSI Interrupt"},
9091
{.irq = IRQIO_VAI, .name = "VAI", .desc = "[AIO] Virtual I/O Devices AI"},
9192
{.irq = IRQIO_GAL, .name = "GAL", .desc = "[AIO] GIB Alert"},

arch/s390/pci/pci_irq.c

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -188,11 +188,13 @@ static void zpci_handle_fallback_irq(void)
188188

189189
static void zpci_directed_irq_handler(struct airq_struct *airq, bool floating)
190190
{
191-
inc_irq_stat(IRQIO_PCI);
192-
if (floating)
191+
if (floating) {
192+
inc_irq_stat(IRQIO_PCF);
193193
zpci_handle_fallback_irq();
194-
else
194+
} else {
195+
inc_irq_stat(IRQIO_PCD);
195196
zpci_handle_cpu_local_irq(true);
197+
}
196198
}
197199

198200
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)
201203
struct airq_iv *aibv;
202204
int irqs_on = 0;
203205

204-
inc_irq_stat(IRQIO_PCI);
206+
inc_irq_stat(IRQIO_PCF);
205207
for (si = 0;;) {
206208
/* Scan adapter summary indicator bit vector */
207209
si = airq_iv_scan(zpci_sbv, si, airq_iv_end(zpci_sbv));

0 commit comments

Comments
 (0)