mirror of
https://git.openafs.org/openafs.git
synced 2025-01-22 17:00:15 +00:00
rx-avoid-unnecessary-wakeups-20011225
"This fixes a livelock condition introduced in my earlier resource starvation patch; apparently I had erred too far on the side of "wake up just in case". The livelock bug is exhibited when running 10 fsstress processes at once; if many processes are waiting for a new Rx call, they get stuck in an uninterruptible kernel loop waking each other up."
This commit is contained in:
parent
28eefd7613
commit
3ea10ea353
@ -1053,7 +1053,7 @@ struct rx_call *rx_NewCall(conn)
|
|||||||
osi_rxSleep(conn);
|
osi_rxSleep(conn);
|
||||||
#endif
|
#endif
|
||||||
conn->makeCallWaiters--;
|
conn->makeCallWaiters--;
|
||||||
|
}
|
||||||
/*
|
/*
|
||||||
* Wake up anyone else who might be giving us a chance to
|
* Wake up anyone else who might be giving us a chance to
|
||||||
* run (see code above that avoids resource starvation).
|
* run (see code above that avoids resource starvation).
|
||||||
@ -1063,7 +1063,6 @@ struct rx_call *rx_NewCall(conn)
|
|||||||
#else
|
#else
|
||||||
osi_rxWakeup(conn);
|
osi_rxWakeup(conn);
|
||||||
#endif
|
#endif
|
||||||
}
|
|
||||||
|
|
||||||
CALL_HOLD(call, RX_CALL_REFCOUNT_BEGIN);
|
CALL_HOLD(call, RX_CALL_REFCOUNT_BEGIN);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user