Page MenuHomeFreeBSD

D29942.id88176.diff
No OneTemporary

D29942.id88176.diff

Index: sys/x86/x86/local_apic.c
===================================================================
--- sys/x86/x86/local_apic.c
+++ sys/x86/x86/local_apic.c
@@ -202,6 +202,7 @@
static struct eventtimer lapic_et;
#ifdef SMP
static uint64_t lapic_ipi_wait_mult;
+static int lapic_ipi_timeout = 1000000;
#endif
unsigned int max_apic_id;
@@ -212,6 +213,10 @@
&lapic_eoi_suppression, 0, "");
SYSCTL_INT(_hw_apic, OID_AUTO, timer_tsc_deadline, CTLFLAG_RD,
&lapic_timer_tsc_deadline, 0, "");
+#ifdef SMP
+SYSCTL_INT(_hw_apic, OID_AUTO, ipi_timeout, CTLFLAG_RWTUN, &lapic_ipi_timeout,
+ 0, "timeout (microseconds) for IPI to be sent");
+#endif
static void lapic_calibrate_initcount(struct lapic *la);
static void lapic_calibrate_deadline(struct lapic *la);
@@ -2035,7 +2040,6 @@
}
}
-#define BEFORE_SPIN 50000
#ifdef DETECT_DEADLOCK
#define AFTER_SPIN 50
#endif
@@ -2082,7 +2086,7 @@
icrlo |= APIC_DESTMODE_PHY | APIC_TRIGMOD_EDGE | APIC_LEVEL_ASSERT;
/* Wait for an earlier IPI to finish. */
- if (!lapic_ipi_wait(BEFORE_SPIN)) {
+ if (!lapic_ipi_wait(lapic_ipi_timeout)) {
if (KERNEL_PANICKED())
return;
else

File Metadata

Mime Type
text/plain
Expires
Tue, May 19, 2:13 AM (16 h, 22 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
33286095
Default Alt Text
D29942.id88176.diff (1 KB)

Event Timeline