Page MenuHomeFreeBSD

D55890.diff
No OneTemporary

D55890.diff

diff --git a/sys/x86/include/apicvar.h b/sys/x86/include/apicvar.h
--- a/sys/x86/include/apicvar.h
+++ b/sys/x86/include/apicvar.h
@@ -265,6 +265,7 @@
extern int x2apic_mode;
extern int lapic_eoi_suppression;
+extern int apic_ext_dest_id;
#ifdef _SYS_SYSCTL_H_
SYSCTL_DECL(_hw_apic);
diff --git a/sys/x86/x86/local_apic.c b/sys/x86/x86/local_apic.c
--- a/sys/x86/x86/local_apic.c
+++ b/sys/x86/x86/local_apic.c
@@ -2086,6 +2086,17 @@
}
SYSINIT(apic_setup_local, SI_SUB_CPU, SI_ORDER_SECOND, apic_setup_local, NULL);
+/* Are we in a VM which supports the Extended Destination ID standard? */
+int apic_ext_dest_id = -1;
+SYSCTL_INT(_machdep, OID_AUTO, apic_ext_dest_id, CTLFLAG_RDTUN, &apic_ext_dest_id, 0,
+ "Use APIC Extended Destination IDs");
+
+/* Detect support for Extended Destination IDs. */
+static void
+detect_extended_dest_id(void)
+{
+}
+
/*
* Setup the I/O APICs.
*/
@@ -2097,6 +2108,10 @@
if (best_enum == NULL)
return;
+ /* Check hypervisor support for extended destination IDs. */
+ if (apic_ext_dest_id == -1)
+ detect_extended_dest_id();
+
/*
* Local APIC must be registered before other PICs and pseudo PICs
* for proper suspend/resume order.

File Metadata

Mime Type
text/plain
Expires
Tue, Jul 21, 3:37 PM (6 h, 32 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
35323113
Default Alt Text
D55890.diff (1 KB)

Event Timeline