x86: expand /proc/interrupts to include missing vectors, v2
[pandora-kernel.git] / arch / x86 / kernel / irq_64.c
index 865669e..3881189 100644 (file)
@@ -86,11 +86,37 @@ skip:
                seq_printf(p, "NMI: ");
                for_each_online_cpu(j)
                        seq_printf(p, "%10u ", cpu_pda(j)->__nmi_count);
-               seq_putc(p, '\n');
+               seq_printf(p, "  Non-maskable interrupts\n");
                seq_printf(p, "LOC: ");
                for_each_online_cpu(j)
                        seq_printf(p, "%10u ", cpu_pda(j)->apic_timer_irqs);
-               seq_putc(p, '\n');
+               seq_printf(p, "  Local timer interrupts\n");
+#ifdef CONFIG_SMP
+               seq_printf(p, "RES: ");
+               for_each_online_cpu(j)
+                       seq_printf(p, "%10u ", cpu_pda(j)->irq_resched_count);
+               seq_printf(p, "  Rescheduling interrupts\n");
+               seq_printf(p, "CAL: ");
+               for_each_online_cpu(j)
+                       seq_printf(p, "%10u ", cpu_pda(j)->irq_call_count);
+               seq_printf(p, "  function call interrupts\n");
+               seq_printf(p, "TLB: ");
+               for_each_online_cpu(j)
+                       seq_printf(p, "%10u ", cpu_pda(j)->irq_tlb_count);
+               seq_printf(p, "  TLB shootdowns\n");
+#endif
+               seq_printf(p, "TRM: ");
+               for_each_online_cpu(j)
+                       seq_printf(p, "%10u ", cpu_pda(j)->irq_thermal_count);
+               seq_printf(p, "  Thermal event interrupts\n");
+               seq_printf(p, "THR: ");
+               for_each_online_cpu(j)
+                       seq_printf(p, "%10u ", cpu_pda(j)->irq_threshold_count);
+               seq_printf(p, "  Threshold APIC interrupts\n");
+               seq_printf(p, "SPU: ");
+               for_each_online_cpu(j)
+                       seq_printf(p, "%10u ", cpu_pda(j)->irq_spurious_count);
+               seq_printf(p, "  Spurious interrupts\n");
                seq_printf(p, "ERR: %10u\n", atomic_read(&irq_err_count));
        }
        return 0;