On Tue, Aug 11, 2026 at 07:00:14PM -0700, Paul E. McKenney wrote: > New workloads can do large bursts of call_rcu_tasks() invocations in a > short time period, followed by a quiet time period long enough to drain > all of the callbacks, followed by another burst of call_rcu_tasks() > invocations. This can cause RCU Tasks to switch back and forth between > queuing callbacks only on CPU 0 (during quiet periods) and on all CPUs > (during bursts). > > Which is fine. Except for the fact that each cycle from CPU-0-only to > all-CPUs queuing and back generates three console messages, one announcing > the shift to all-CPUs queuing, another announcing the start of the shift > back to CPU-0-only queuing, and the third announcing completion of this > shift after an RCU grace period. And these console messages can overrun > console-log communications channels and obscure other console-message-based > debugging information. And the only known use for these console messages > is debugging RCU Tasks itself. > > This commit therefore adds a rcupdate.rcu_task_collapse_debug module > parameter that defaults to false (suppressing these console messages). > Those debugging or otherwise playing with RCU Tasks callback queuing > auto-adjustment can set this parameter to the value true. > > Reported-by: Breno Leitao <[email protected]> > Reported-by: David Dai <[email protected]> > Signed-off-by: Paul E. McKenney <[email protected]>
Reviewed-by: Breno Leitao <[email protected]> Thanks for the patch. I confirm that this is flooding the monitoring systems at Meta, together with [1] Link: https://lore.kernel.org/all/[email protected]/ [0] > +static bool rcu_task_collapse_debug __read_mostly = false; nit: You don't need false here. Checkpatch even raises an error: ERROR: do not initialise statics to false Thanks! --breno

