"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."
osi_rxSleep(conn);
#endif
conn->makeCallWaiters--;
-
- /*
- * Wake up anyone else who might be giving us a chance to
- * run (see code above that avoids resource starvation).
- */
+ }
+ /*
+ * Wake up anyone else who might be giving us a chance to
+ * run (see code above that avoids resource starvation).
+ */
#ifdef RX_ENABLE_LOCKS
- CV_BROADCAST(&conn->conn_call_cv);
+ CV_BROADCAST(&conn->conn_call_cv);
#else
- osi_rxWakeup(conn);
+ osi_rxWakeup(conn);
#endif
- }
CALL_HOLD(call, RX_CALL_REFCOUNT_BEGIN);