Do as the USII CPU manual suggests and leave interrupts enabled
for a bit before retrying to resend an IPI in order to avoid deadlocks if the other CPU is also trying to send one. OpenSolaris uses a delay of 1 microsecond here but waiting 2 microseconds with interrupts enabled like Linux does shouldn't hurt but is a bit safer. MFC after: 1 day
This commit is contained in:
parent
405a44d326
commit
7d7ce7f24e
@ -456,6 +456,12 @@ cpu_ipi_send(u_int mid, u_long d0, u_long d1, u_long d2)
|
||||
intr_restore(s);
|
||||
if ((ids & IDR_NACK) == 0)
|
||||
return;
|
||||
/*
|
||||
* Leave interrupts enabled for a bit before retrying
|
||||
* in order to avoid deadlocks if the other CPU is also
|
||||
* trying to send an IPI.
|
||||
*/
|
||||
DELAY(2);
|
||||
}
|
||||
if (
|
||||
#ifdef KDB
|
||||
|
Loading…
Reference in New Issue
Block a user