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


Reply via email to