From: sashiko-bot@kernel.org
To: "Vincent Donnefort" <vdonnefort@google.com>
Cc: linux-trace-kernel@vger.kernel.org
Subject: Re: [PATCH v7 18/20] tracing/remotes: Add trace_remote cmdline options
Date: Thu, 24 Sep 2026 15:16:20 +0000 [thread overview]
Message-ID: <20260924151620.D23551F000FF@smtp.kernel.org> (raw)
In-Reply-To: <20260924145754.1285146-19-vdonnefort@google.com>
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [Medium] tracing: missing validation and truncation of buf_size in trace_remote
- [Low] tracing: data race in trace_remote cmdline parsing due to missing WRITE_ONCE
--
commit 6359480e2f0f5e3b0022cfdf6db7a85cba580136
Author: Vincent Donnefort <vdonnefort@google.com>
tracing/remotes: Add trace_remote cmdline options
This patch adds a command-line interface to configure trace remotes upon
registration. It parses options such as dump_on_panic, dmesg, buf_size,
and poll parameters, and enables tracing automatically when events are
activated.
> diff --git a/kernel/trace/trace_remote.c b/kernel/trace/trace_remote.c
> index b2547eb117f85..de41f36e9a0e3 100644
> --- a/kernel/trace/trace_remote.c
> +++ b/kernel/trace/trace_remote.c
[ ... ]
> +static bool trace_remote_apply_cmdline_opts(struct trace_remote *remote, char *cmdline)
> +{
> + bool dmesg_on = false;
> + char *opt;
> +
> + while ((opt = strsep(&cmdline, "^"))) {
> + if (!*opt)
> + continue;
> +
> + if (!strcmp(opt, "dump_on_panic")) {
> + WRITE_ONCE(remote->panic_on, true);
> + } else if (!strcmp(opt, "dmesg")) {
> + dmesg_on = true;
> + } else if (!strncmp(opt, "buf_size=", 9)) {
> + WRITE_ONCE(remote->trace_buffer_size, memparse(opt + 9, NULL));
[Severity: Medium]
Is it possible for this to silently truncate large buffer sizes on 32-bit
architectures?
Since memparse() returns a 64-bit unsigned long long, but
remote->trace_buffer_size is an unsigned long (32 bits on 32-bit
architectures), values like 4G might truncate.
Additionally, what happens if a privileged user specifies buf_size=0 on
the command line? It seems this bypasses validation and might cause
undefined behavior in ring buffer allocation or remote driver
initialization.
> + } else if (!strncmp(opt, "poll=", 5)) {
> + unsigned int poll_ms;
> +
> + if (!kstrtouint(opt + 5, 10, &poll_ms) && poll_ms > 0)
> + remote->poll_ms = poll_ms;
[Severity: Low]
Should this assignment use WRITE_ONCE()?
Concurrent lockless readers like poll_ms_show() access this variable via
READ_ONCE(). A plain assignment here without WRITE_ONCE() violates kernel
concurrency rules and could trigger a KCSAN data race warning if accessed
while the boot cmdline is being applied during remote registration.
> + else
> + pr_warn("Invalid trace remote poll '%s'\n", opt);
> + } else {
> + pr_warn("Unknown trace remote option '%s'\n", opt);
> + }
> + }
> +
> + return dmesg_on;
> +}
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260924145754.1285146-1-vdonnefort@google.com?part=18
next prev parent reply other threads:[~2026-09-24 15:16 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-24 14:57 [PATCH v7 00/20] tracing/remotes: Add printk, dump_on_panic and boot parameters Vincent Donnefort
2026-09-24 14:57 ` [PATCH v7 01/20] tracing/remotes: Gate tracefs files opening on trace remote registration Vincent Donnefort
2026-09-24 14:57 ` [PATCH v7 02/20] tracing/remotes: Release tracefs,eventfs on registration failure Vincent Donnefort
2026-09-24 14:57 ` [PATCH v7 03/20] tracing/remotes: Use kstrtobool for boolean tracefs files Vincent Donnefort
2026-09-24 14:57 ` [PATCH v7 04/20] tracing/remotes: Initialise pos in trace_start() Vincent Donnefort
2026-09-24 14:57 ` [PATCH v7 05/20] tracing/remotes: Annotate remote shared fields with READ_ONCE/WRITE_ONCE Vincent Donnefort
2026-09-24 14:57 ` [PATCH v7 06/20] tracing/remotes: Use a single per-remote polling work Vincent Donnefort
2026-09-24 14:57 ` [PATCH v7 07/20] tracing/simple_ring_buffer: Add support for compressed length Vincent Donnefort
2026-09-24 14:57 ` [PATCH v7 08/20] tracing/remotes: Add dmesg tracefs file Vincent Donnefort
2026-09-24 15:12 ` sashiko-bot
2026-09-24 14:57 ` [PATCH v7 09/20] tracing/remotes: selftests: Add a test for the " Vincent Donnefort
2026-09-24 14:57 ` [PATCH v7 10/20] tracing/remotes: selftests: Prefix hypervisor folder Vincent Donnefort
2026-09-24 14:57 ` [PATCH v7 11/20] ring-buffer: Use irqsave for the reader lock in ring_buffer_poll_remote Vincent Donnefort
2026-09-24 14:57 ` [PATCH v7 12/20] ring-buffer: Use panic-friendly locking in ring_buffer_iter interface Vincent Donnefort
2026-09-24 14:57 ` [PATCH v7 13/20] ring-buffer: Add ring_buffer_read_remote_meta_page() Vincent Donnefort
2026-09-24 14:57 ` [PATCH v7 14/20] ring-buffer: Add kerneldoc for ring_buffer_poll_remote Vincent Donnefort
2026-09-24 14:57 ` [PATCH v7 15/20] tracing/remotes: Add dump_on_panic tracefs file Vincent Donnefort
2026-09-24 15:15 ` sashiko-bot
2026-09-24 14:57 ` [PATCH v7 16/20] tracing/remotes: selftests: Add a test for the " Vincent Donnefort
2026-09-24 14:57 ` [PATCH v7 17/20] tracing/remotes: Add poll_ms " Vincent Donnefort
2026-09-24 15:13 ` sashiko-bot
2026-09-24 14:57 ` [PATCH v7 18/20] tracing/remotes: Add trace_remote cmdline options Vincent Donnefort
2026-09-24 15:16 ` sashiko-bot [this message]
2026-09-24 14:57 ` [PATCH v7 19/20] Documentation: tracing/remotes: Add detailed tracefs layout Vincent Donnefort
2026-09-24 14:57 ` [PATCH v7 20/20] Documentation/kernel-parameters: Add trace_remote Vincent Donnefort
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=20260924151620.D23551F000FF@smtp.kernel.org \
--to=sashiko-bot@kernel.org \
--cc=linux-trace-kernel@vger.kernel.org \
--cc=sashiko-reviews@lists.linux.dev \
--cc=vdonnefort@google.com \
/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.