• Paul E. McKenney's avatar
    rcu: Force on tick when invoking lots of callbacks · 6a949b7a
    Paul E. McKenney authored
    Callback invocation can run for a significant time period, and within
    CONFIG_NO_HZ_FULL=y kernels, this period will be devoid of scheduler-clock
    interrupts.  In-kernel execution without such interrupts can cause all
    manner of malfunction, with RCU CPU stall warnings being but one result.
    
    This commit therefore forces scheduling-clock interrupts on whenever more
    than a few RCU callbacks are invoked.  Because offloaded callback invocation
    can be preempted, this forcing is withdrawn on each context switch.  This
    in turn requires that the loop invoking RCU callbacks reiterate the forcing
    periodically.
    
    [ paulmck: Apply Joel Fernandes TICK_DEP_MASK_RCU->TICK_DEP_BIT_RCU fix. ]
    [ paulmck: Remove NO_HZ_FULL check per Frederic Weisbecker feedback. ]
    Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
    6a949b7a
tree.c 114 KB