It helps keep the contention level low: when we hold the update lock
that we know other parts may be relying on (peers, track-sc etc),
we decrease the remaining visit counters 4 times as fast to further
reduce the contention. At this point no more warnings are seen during
intense synchronization (2x64 cores, 1.5M req/s with a track-sc each,
5M entries in use).
goto out_unlock;
}
- to_visit--;
+ /* Let's quit earlier if we currently hold the update lock */
+ to_visit -= 1 + 3 * updt_locked;
/* timer looks expired, detach it from the queue */
ts = eb32_entry(eb, struct stksess, exp);