• Paul E. McKenney's avatar
    rcu: Throttle callback invocation based on number of ready callbacks · 253cbbff
    Paul E. McKenney authored
    Currently, rcu_do_batch() sizes its batches based on the total number
    of callbacks in the callback list.  This can result in some strange
    choices, for example, if there was 12,800 callbacks in the list, but
    only 200 were ready to invoke, RCU would invoke 100 at a time (12,800
    shifted down by seven bits).
    
    A more measured approach would use the number that were actually ready
    to invoke, an approach that has become feasible only recently given the
    per-segment ->seglen counts in ->cblist.
    
    This commit therefore bases the batch limit on the number of callbacks
    ready to invoke instead of on the total number of callbacks.
    Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
    253cbbff
rcu_segcblist.c 20 KB