From: Joel Fernandes <joelagnelf@nvidia.com>
To: Song Liu <song@kernel.org>
Cc: rcu@vger.kernel.org, paulmck@kernel.org,
linux-kernel@vger.kernel.org, kernel-team@meta.com,
rostedt@goodmis.org, leitao@debian.org, david.dai@linux.dev
Subject: Re: [PATCH] rcu-tasks: Use pr_debug() for callback contend/collapse messages
Date: Wed, 11 Nov 2026 10:54:41 -0500 [thread overview]
Message-ID: <20261111155441.GA1829883@joelbox> (raw)
In-Reply-To: <20261111053551.3367903-1-song@kernel.org>
On Tue, Nov 10, 2026 at 09:35:51PM -0800, Song Liu wrote:
> Commit 5de907d24919 ("rcu-tasks: Disable callback contend/collapse
> messages by default") added the rcupdate.rcu_task_collapse_debug module
> parameter to gate the three pr_info() messages that report RCU Tasks
> switching between CPU-0 and per-CPU callback queuing.
>
> The kernel already has a mechanism for debug-only messages that are off
> by default: pr_debug(). Use pr_debug() for these messages, and remove
> the rcu_task_collapse_debug module parameter, its documentation, and
> its boot-time announcement.
>
> The messages stay off by default. On CONFIG_DYNAMIC_DEBUG=y kernels,
> they can be enabled at boot with:
>
> dyndbg="file kernel/rcu/tasks.h +p"
>
> or at runtime with:
>
> echo 'file kernel/rcu/tasks.h +p' > /proc/dynamic_debug/control
>
> Assisted-by: Claude:claude-opus-5
> Signed-off-by: Song Liu <song@kernel.org>
Makes sense to me,
Reviewed-by: Joel Fernandes <joelagnelf@nvidia.com>
Will apply for 7.5.
thanks,
Joel Fernandes
> ---
> Documentation/admin-guide/kernel-parameters.txt | 7 -------
> kernel/rcu/tasks.h | 15 +++------------
> 2 files changed, 3 insertions(+), 19 deletions(-)
>
> diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
> index 0b3c140babd9..176648941aec 100644
> --- a/Documentation/admin-guide/kernel-parameters.txt
> +++ b/Documentation/admin-guide/kernel-parameters.txt
> @@ -6369,13 +6369,6 @@ Kernel parameters
> period to instead use normal non-expedited
> grace-period processing.
>
> - rcupdate.rcu_task_collapse_debug= [KNL]
> - Enable debugging prints that record when RCU Tasks
> - and RCU Tasks Trace expand to per-CPU callback
> - queuing and collapse back to CPU-0 queuing.
> - This is default-disabled due to the fact that
> - some workloads can make it quite noisy.
> -
> rcupdate.rcu_task_collapse_lim= [KNL]
> Set the maximum number of callbacks present
> at the beginning of a grace period that allows
> diff --git a/kernel/rcu/tasks.h b/kernel/rcu/tasks.h
> index fcac7361ec51..743f777b4c18 100644
> --- a/kernel/rcu/tasks.h
> +++ b/kernel/rcu/tasks.h
> @@ -178,8 +178,6 @@ static int rcu_task_contend_lim __read_mostly = 100;
> module_param(rcu_task_contend_lim, int, 0444);
> static int rcu_task_collapse_lim __read_mostly = 10;
> module_param(rcu_task_collapse_lim, int, 0444);
> -static bool rcu_task_collapse_debug __read_mostly;
> -module_param(rcu_task_collapse_debug, bool, 0644);
> static int rcu_task_lazy_lim __read_mostly = 32;
> module_param(rcu_task_lazy_lim, int, 0444);
>
> @@ -392,8 +390,7 @@ static void call_rcu_tasks_generic(struct rcu_head *rhp, rcu_callback_t func,
> WRITE_ONCE(rtp->percpu_enqueue_shift, 0);
> WRITE_ONCE(rtp->percpu_dequeue_lim, rcu_task_cpu_ids);
> smp_store_release(&rtp->percpu_enqueue_lim, rcu_task_cpu_ids);
> - if (data_race(rcu_task_collapse_debug))
> - pr_info("Switching %s to per-CPU callback queuing.\n", rtp->name);
> + pr_debug("Switching %s to per-CPU callback queuing.\n", rtp->name);
> }
> raw_spin_unlock_irqrestore(&rtp->cbs_gbl_lock, flags);
> }
> @@ -514,9 +511,7 @@ static int rcu_tasks_need_gpcb(struct rcu_tasks *rtp)
> smp_store_release(&rtp->percpu_enqueue_lim, 1);
> rtp->percpu_dequeue_gpseq = get_state_synchronize_rcu();
> gpdone = false;
> - if (data_race(rcu_task_collapse_debug))
> - pr_info("Starting switch %s to CPU-0 callback queuing.\n",
> - rtp->name);
> + pr_debug("Starting switch %s to CPU-0 callback queuing.\n", rtp->name);
> }
> raw_spin_unlock_irqrestore(&rtp->cbs_gbl_lock, flags);
> }
> @@ -524,9 +519,7 @@ static int rcu_tasks_need_gpcb(struct rcu_tasks *rtp)
> raw_spin_lock_irqsave(&rtp->cbs_gbl_lock, flags);
> if (rtp->percpu_enqueue_lim < rtp->percpu_dequeue_lim) {
> WRITE_ONCE(rtp->percpu_dequeue_lim, 1);
> - if (data_race(rcu_task_collapse_debug))
> - pr_info("Completing switch %s to CPU-0 callback queuing.\n",
> - rtp->name);
> + pr_debug("Completing switch %s to CPU-0 callback queuing.\n", rtp->name);
> }
> if (rtp->percpu_dequeue_lim == 1) {
> for (cpu = rtp->percpu_dequeue_lim; cpu < rcu_task_cpu_ids; cpu++) {
> @@ -711,8 +704,6 @@ static void __init rcu_tasks_bootup_oddness(void)
> pr_info("\tTasks-RCU CPU stall info multiplier clamped to %d (rcu_task_stall_info_mult).\n", rtsimc);
> rcu_task_stall_info_mult = rtsimc;
> }
> - if (rcu_task_collapse_debug)
> - pr_info("\tTasks-RCU callback contend/collapse debug enabled.\n");
> #endif /* #ifdef CONFIG_TASKS_RCU */
> #ifdef CONFIG_TASKS_RCU
> pr_info("\tTrampoline variant of Tasks RCU enabled.\n");
> --
> 2.53.0-Meta
>
next prev parent reply other threads:[~2026-11-11 15:54 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-11 5:35 [PATCH] rcu-tasks: Use pr_debug() for callback contend/collapse messages Song Liu
2026-11-11 15:54 ` Joel Fernandes [this message]
2026-11-11 17:32 ` Song Liu
2026-11-11 18:22 ` Joel Fernandes
2026-11-11 18:52 ` Paul E. McKenney
2026-11-11 18:51 ` Paul E. McKenney
2026-11-12 9:39 ` Breno Leitao
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261111155441.GA1829883@joelbox \
--to=joelagnelf@nvidia.com \
--cc=david.dai@linux.dev \
--cc=kernel-team@meta.com \
--cc=leitao@debian.org \
--cc=linux-kernel@vger.kernel.org \
--cc=paulmck@kernel.org \
--cc=rcu@vger.kernel.org \
--cc=rostedt@goodmis.org \
--cc=song@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.