]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
parisc: Count IPI function call interrupts
authorHelge Deller <deller@gmx.de>
Sat, 5 Jan 2019 19:07:27 +0000 (20:07 +0100)
committerHelge Deller <deller@gmx.de>
Thu, 21 Feb 2019 19:37:11 +0000 (20:37 +0100)
Like other platforms, count the number of IPI function call interrupts
and show it in /proc/interrupts.

Signed-off-by: Helge Deller <deller@gmx.de>
arch/parisc/include/asm/hardirq.h
arch/parisc/kernel/irq.c
arch/parisc/kernel/smp.c

index 1a1235a9d533895101871395a7aec7244d19a7e0..7f7039516e53fa08ffd69981d318d3c168d1e45e 100644 (file)
@@ -22,6 +22,7 @@ typedef struct {
        unsigned int irq_stack_usage;
 #ifdef CONFIG_SMP
        unsigned int irq_resched_count;
+       unsigned int irq_call_count;
 #endif
        unsigned int irq_unaligned_count;
        unsigned int irq_fpassist_count;
index a1369bb54cdb60301c5259c6b51d37ca569fce9f..6f19f364c20aba573bd6d409c0ff4bfe076f4eb9 100644 (file)
@@ -180,6 +180,10 @@ int arch_show_interrupts(struct seq_file *p, int prec)
                for_each_online_cpu(j)
                        seq_printf(p, "%10u ", irq_stats(j)->irq_resched_count);
                seq_puts(p, "  Rescheduling interrupts\n");
+               seq_printf(p, "%*s: ", prec, "CAL");
+               for_each_online_cpu(j)
+                       seq_printf(p, "%10u ", irq_stats(j)->irq_call_count);
+               seq_puts(p, "  Function call interrupts\n");
        }
 #endif
        seq_printf(p, "%*s: ", prec, "UAH");
index 5e26dbede5fc23d37f734e1511bc405207d37266..d9e2d69c9e48bf4e0bf0f8da1cd3ae3be24b1a5f 100644 (file)
@@ -155,6 +155,7 @@ ipi_interrupt(int irq, void *dev_id)
 
                        case IPI_CALL_FUNC:
                                smp_debug(100, KERN_DEBUG "CPU%d IPI_CALL_FUNC\n", this_cpu);
+                               inc_irq_stat(irq_call_count);
                                generic_smp_call_function_interrupt();
                                break;