Re: [PATCH RFC] rcu-tasks: Disable callback contend/collapse messages by default
From: Paul E. McKenney
Date: Wed Aug 12 2026 - 17:34:41 EST
On Wed, Aug 12, 2026 at 02:28:10AM -0700, Breno Leitao wrote:
> 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 <leitao@xxxxxxxxxx>
> > Reported-by: David Dai <david.dai@xxxxxxxxx>
> > Signed-off-by: Paul E. McKenney <paulmck@xxxxxxxxxx>
>
> Reviewed-by: Breno Leitao <leitao@xxxxxxxxxx>
Thank you! I will apply this on my next rebase.
> Thanks for the patch. I confirm that this is flooding the monitoring
> systems at Meta, together with [1]
>
> Link:
> https://lore.kernel.org/all/20260810-swap-v1-0-375ef0767206@xxxxxxxxxx/
> [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
And this fix as well.
Thanx, Paul