Page MenuHomeFreeBSD

D31690.id94220.diff
No OneTemporary

D31690.id94220.diff

Index: sys/arm64/xen/xen_arch_intr.c
===================================================================
--- sys/arm64/xen/xen_arch_intr.c
+++ sys/arm64/xen/xen_arch_intr.c
@@ -40,6 +40,7 @@
#include <sys/pcpu.h>
#include <sys/smp.h>
#include <sys/syslog.h>
+#include <sys/intr.h>
#include <xen/xen-os.h>
#include <xen/arch-intr.h>
@@ -123,6 +124,20 @@
isrc = NULL;
}
+#ifdef SMP
+ if (type == EVTCHN_TYPE_PORT) {
+ static u_int current;
+
+ /*
+ * By default all interrupts are assigned to vCPU#0
+ * unless specified otherwise, so shuffle them to balance
+ * the interrupt load.
+ */
+ current = intr_irq_next_cpu(current, &all_cpus);
+ xen_intr_assign_cpu(isrc, current);
+ }
+#endif
+
return (isrc);
}

File Metadata

Mime Type
text/plain
Expires
Tue, Jun 23, 6:19 PM (9 h, 29 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
34255883
Default Alt Text
D31690.id94220.diff (737 B)

Event Timeline