Page MenuHomeFreeBSD

D31690.diff
No OneTemporary

D31690.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>
@@ -112,6 +113,20 @@
isrc = NULL;
}
+#ifdef SMP
+ if (type == EVTCHN_TYPE_PORT) {
+ static u_int current = 1;
+
+ /*
+ * 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);
+ isrc->xi_cpu = current;
+ }
+#endif
+
return (isrc);
}

File Metadata

Mime Type
text/plain
Expires
Fri, Jan 23, 11:35 AM (18 h, 43 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
27882607
Default Alt Text
D31690.diff (729 B)

Event Timeline