public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Petr Mladek <pmladek@suse.com>
To: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: Miguel Ojeda <ojeda@kernel.org>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org,
	Gary Guo <gary@garyguo.net>, Alex Gaynor <alex.gaynor@gmail.com>,
	Wedson Almeida Filho <wedsonaf@google.com>,
	Steven Rostedt <rostedt@goodmis.org>,
	Sergey Senozhatsky <senozhatsky@chromium.org>,
	Rasmus Villemoes <linux@rasmusvillemoes.dk>
Subject: Re: [PATCH v5 12/20] vsprintf: add new `%pA` format specifier
Date: Fri, 18 Mar 2022 17:04:45 +0100	[thread overview]
Message-ID: <YjStnb7nNTC3kYw6@alley> (raw)
In-Reply-To: <YjSSI4cmGblm+6j7@smile.fi.intel.com>

On Fri 2022-03-18 16:07:31, Andy Shevchenko wrote:
> On Thu, Mar 17, 2022 at 07:10:00PM +0100, Miguel Ojeda wrote:
> > From: Gary Guo <gary@garyguo.net>
> > 
> > This patch adds a format specifier `%pA` to `vsprintf` which formats
> > a pointer as `core::fmt::Arguments`. Doing so allows us to directly
> > format to the internal buffer of `printf`, so we do not have to use
> > a temporary buffer on the stack to pre-assemble the message on
> > the Rust side.
> > 
> > This specifier is intended only to be used from Rust and not for C, so
> > `checkpatch.pl` is intentionally unchanged to catch any misuse.
> 
> ...
> 
> > +	case 'A':
> > +		if (!IS_ENABLED(CONFIG_RUST)) {
> > +			WARN_ONCE(1, "Please remove %%pA from non-Rust code\n");
> > +			return error_string(buf, end, "(%pA?)", spec);
> > +		}
> 
> I'm wondering if the Big Scary Banner as trace_printk() does would be better
> (in case we can tell that %pA is used in the code when RUST=n).

Good question!

The advantage of WARN_ONCE() is that it shows the stack so that it is
easier to locate the caller.

On the other hand, WARN_ONCE() is a bit misused here. It should be
used only in situations that might be potentially fatal. It might
even cause panic() with "panic_on_warn" kernel parameter.

Well, I am not sure if it is worth huge effort. WARN_ONCE() is
practical in this case because of the backtrace. We could always
create something better if people hit it more frequently and
it causes real life problems.

Best Regards,
Petr

  reply	other threads:[~2022-03-18 16:06 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-17 18:09 [PATCH v5 00/20] Rust support Miguel Ojeda
2022-03-17 18:09 ` [PATCH v5 01/20] kallsyms: support "big" kernel symbols Miguel Ojeda
2022-03-17 18:09 ` [PATCH v5 02/20] kallsyms: increase maximum kernel symbol length to 512 Miguel Ojeda
2022-03-17 18:09 ` [PATCH v5 03/20] kallsyms: use the correct buffer size for symbols Miguel Ojeda
2022-03-17 18:09 ` [PATCH v5 04/20] rust: add C helpers Miguel Ojeda
2022-03-17 18:09 ` [PATCH v5 05/20] rust: add `compiler_builtins` crate Miguel Ojeda
2022-03-17 18:09 ` [PATCH v5 06/20] rust: add `alloc` crate Miguel Ojeda
2022-03-31 12:42   ` Greg Kroah-Hartman
2022-03-31 13:19     ` Miguel Ojeda
2022-03-31 13:35       ` Greg Kroah-Hartman
2022-03-17 18:09 ` [PATCH v5 07/20] rust: add `build_error` crate Miguel Ojeda
2022-03-17 18:09 ` [PATCH v5 08/20] rust: add `macros` crate Miguel Ojeda
2022-03-17 18:09 ` [PATCH v5 09/20] rust: add `kernel` crate's `sync` module Miguel Ojeda
2022-03-17 18:09 ` [PATCH v5 10/20] rust: add `kernel` crate Miguel Ojeda
2022-03-17 18:09 ` [PATCH v5 11/20] rust: export generated symbols Miguel Ojeda
2022-03-17 18:10 ` [PATCH v5 12/20] vsprintf: add new `%pA` format specifier Miguel Ojeda
2022-03-18 14:07   ` Andy Shevchenko
2022-03-18 16:04     ` Petr Mladek [this message]
2022-03-22  4:16       ` Sergey Senozhatsky
2022-03-17 18:10 ` [PATCH v5 13/20] scripts: add `generate_rust_analyzer.py` Miguel Ojeda
2022-03-17 18:10 ` [PATCH v5 14/20] scripts: decode_stacktrace: demangle Rust symbols Miguel Ojeda
2022-03-17 18:10 ` [PATCH v5 15/20] docs: add Rust documentation Miguel Ojeda
2022-03-17 18:10 ` [PATCH v5 16/20] Kbuild: add Rust support Miguel Ojeda
2022-03-17 18:10 ` [PATCH v5 17/20] samples: add Rust examples Miguel Ojeda
2022-03-17 18:10 ` [PATCH v5 18/20] MAINTAINERS: Rust Miguel Ojeda
2022-03-17 18:10 ` [PATCH v5 19/20] [RFC] drivers: gpio: PrimeCell PL061 in Rust Miguel Ojeda
2022-03-17 18:10 ` [PATCH v5 20/20] [RFC] drivers: android: Binder IPC " Miguel Ojeda

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=YjStnb7nNTC3kYw6@alley \
    --to=pmladek@suse.com \
    --cc=alex.gaynor@gmail.com \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=gary@garyguo.net \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@rasmusvillemoes.dk \
    --cc=ojeda@kernel.org \
    --cc=rostedt@goodmis.org \
    --cc=rust-for-linux@vger.kernel.org \
    --cc=senozhatsky@chromium.org \
    --cc=torvalds@linux-foundation.org \
    --cc=wedsonaf@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox