summaryrefslogtreecommitdiff
path: root/arch/x86/kernel/irq.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/kernel/irq.c')
-rw-r--r--arch/x86/kernel/irq.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/arch/x86/kernel/irq.c b/arch/x86/kernel/irq.c
index 22349f5c301b..cb38c8737602 100644
--- a/arch/x86/kernel/irq.c
+++ b/arch/x86/kernel/irq.c
@@ -193,6 +193,11 @@ int arch_show_interrupts(struct seq_file *p, int prec)
for_each_online_cpu(j)
seq_printf(p, "%10u ", irq_stats(j)->uintr_kernel_notifications);
seq_puts(p, " User-interrupt kernel notification event\n");
+
+ seq_printf(p, "%*s: ", prec, "UKN");
+ for_each_online_cpu(j)
+ seq_printf(p, "%10u ", irq_stats(j)->uintr_event_notifications);
+ seq_puts(p, " User-interrupt event notification\n");
#endif
return 0;
}
@@ -374,6 +379,17 @@ DEFINE_IDTENTRY_SYSVEC(sysvec_uintr_kernel_notification)
uintr_wake_up_process();
}
+/*
+ * Handler for UINTR_EVENT_VECTOR.
+ */
+DEFINE_IDTENTRY_SYSVEC(sysvec_uintr_event_notification)
+{
+ /* TODO: Add entry-exit tracepoints */
+ ack_APIC_irq();
+ inc_irq_stat(uintr_event_notifications);
+
+ /* do event things */
+}
#endif