Linux Trace Kernel
 help / color / mirror / Atom feed
From: John Ogness <john.ogness@linutronix.de>
To: Steven Rostedt <rostedt@goodmis.org>,
	"Masami Hiramatsu (Google)" <mhiramat@kernel.org>,
	Petr Mladek <pmladek@suse.com>
Cc: Jonathan Corbet <corbet@lwn.net>,
	Naveen N Rao <naveen@kernel.org>,
	"David S . Miller" <davem@davemloft.net>,
	Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
	Shuah Khan <skhan@linuxfoundation.org>,
	Randy Dunlap <rdunlap@infradead.org>,
	Tiezhu Yang <yangtiezhu@loongson.cn>,
	linux-kernel@vger.kernel.org, linux-trace-kernel@vger.kernel.org,
	linux-doc@vger.kernel.org
Subject: Re: [PATCH 0/3] probes: Use trace_printk() in probe handlers
Date: Mon, 02 Nov 2026 23:07:41 +0106	[thread overview]
Message-ID: <871p9251ve.fsf@jogness.linutronix.de> (raw)
In-Reply-To: <20261102123408.0fb950bf@gandalf.local.home>

[ Cc'ing Petr Mladek ]

On 2026-11-02, Steven Rostedt <rostedt@goodmis.org> wrote:
> [ Cc'ing John Ogness ]

Thanks.

>
> On Mon,  2 Nov 2026 16:10:54 +0900
> "Masami Hiramatsu (Google)" <mhiramat@kernel.org> wrote:
>> Here are patches to update the probe sample code to use trace_printk
>> instead of normal printk. Since the fprobe and kprobe/kretprobe handlers
>> can be called from somewhere where console is locked, using printk() is
>> basically unsafe. Only the unoptimized kprobe on x86 is safe because it
>> is ran with NMI context (in this case, the kernel uses printk_deferred()
>> automatically), but optimized kprobe/kretprobe/fprobe are not.
>
> I don't think printk() is unsafe in these situations anymore.

Since we still support legacy consoles, it is true that printk() is not
safe in these contexts when a legacy console is registered.

However, the printk_deferred() variant _is_ safe from any context. Once
we convert the legacy consoles (including boot consoles) to nbcon,
printk_deferred() can become printk() and still be safe from any
context.

It is misfortunate to add documentation saying printk() is not safe,
since the problem is converting the remaining legacy consoles. But we
can cleanup all such documentation later once the legacy consoles are
gone.

John

>> Thus, this series replaces those printk() (pr_*()) with trace_printk()
>> which should be safe to output the result into trace buffer, and use
>> trace_dump_stack() instead of stack_trace_print().
>> 
>> The similar issue had been reported by Tiezhu Yang [1] in 2023, but
>> it was pointed different reason, and not applicable to upstream.
>> I investigated it again.
>> 
>> [1] https://lore.kernel.org/all/d179086d-78d8-d0e3-e113-9072cffa55f4@loongson.cn/

      reply	other threads:[~2026-11-02 22:01 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-11-02  7:10 [PATCH 0/3] probes: Use trace_printk() in probe handlers Masami Hiramatsu (Google)
2026-11-02  7:11 ` [PATCH 1/3] samples/kprobes: " Masami Hiramatsu (Google)
2026-11-02  7:11 ` [PATCH 2/3] samples/fprobe: Use trace_printk() and trace_dump_stack() Masami Hiramatsu (Google)
2026-11-02  7:11 ` [PATCH 3/3] docs: trace: Warn against using printk() in probe handlers Masami Hiramatsu (Google)
2026-11-02 17:34 ` [PATCH 0/3] probes: Use trace_printk() " Steven Rostedt
2026-11-02 22:01   ` John Ogness [this message]

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=871p9251ve.fsf@jogness.linutronix.de \
    --to=john.ogness@linutronix.de \
    --cc=corbet@lwn.net \
    --cc=davem@davemloft.net \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-trace-kernel@vger.kernel.org \
    --cc=mathieu.desnoyers@efficios.com \
    --cc=mhiramat@kernel.org \
    --cc=naveen@kernel.org \
    --cc=pmladek@suse.com \
    --cc=rdunlap@infradead.org \
    --cc=rostedt@goodmis.org \
    --cc=skhan@linuxfoundation.org \
    --cc=yangtiezhu@loongson.cn \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox