From: Peter Zijlstra <peterz@infradead.org>
To: Andreas Hindborg <a.hindborg@kernel.org>
Cc: "Alice Ryhl" <aliceryhl@google.com>,
"Miguel Ojeda" <ojeda@kernel.org>,
"Boqun Feng" <boqun.feng@gmail.com>,
"Gary Guo" <gary@garyguo.net>,
"Björn Roy Baron" <bjorn3_gh@protonmail.com>,
"Benno Lossin" <lossin@kernel.org>,
"Trevor Gross" <tmgross@umich.edu>,
"Danilo Krummrich" <dakr@kernel.org>,
"Alexandre Courbot" <acourbot@nvidia.com>,
"Will Deacon" <will@kernel.org>,
"Mark Rutland" <mark.rutland@arm.com>,
"Nathan Chancellor" <nathan@kernel.org>,
"Nick Desaulniers" <nick.desaulniers+lkml@gmail.com>,
"Bill Wendling" <morbo@google.com>,
"Justin Stitt" <justinstitt@google.com>,
"Nicolas Schier" <nicolas.schier@linux.dev>,
"Andrew Morton" <akpm@linux-foundation.org>,
"Uladzislau Rezki" <urezki@gmail.com>,
rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org,
llvm@lists.linux.dev, linux-kbuild@vger.kernel.org,
linux-mm@kvack.org, nouveau@lists.freedesktop.org,
"Matthew Maurer" <mmaurer@google.com>
Subject: Re: [PATCH 0/4] Inline helpers into Rust without full LTO
Date: Wed, 7 Jan 2026 13:35:28 +0100 [thread overview]
Message-ID: <20260107123528.GF2393663@noisy.programming.kicks-ass.net> (raw)
In-Reply-To: <87y0m9har9.fsf@t14s.mail-host-address-is-not-set>
On Wed, Jan 07, 2026 at 01:23:38PM +0100, Andreas Hindborg wrote:
> Hi Alice,
>
> Alice Ryhl <aliceryhl@google.com> writes:
>
> > Currently the only way for Rust code to call a static inline function is
> > to go through a helper in rust/helpers/. This introduces performance
> > costs due to additional function calls and also clutters backtraces and
> > flame graphs with helper symbols.
> >
> > To get rid of these helper symbols, provide functionality to inline
> > helpers into Rust using llvm-link. This option complements full LTO, by
> > being much cheaper and avoiding incompatibility with BTF.
> >
> > I ran a microbenchmark showing the benefit of this. All the benchmark
> > does is call refcount_inc() in a loop. This was chosen since refcounting
> > is quite hot in Binder. The results are that Rust spends 6.35 ns per
> > call vs 5.73 ns per call in C. When enabling this option, the two
> > languages become equally fast, and disassembly confirms the exact same
> > machine code is used (in particular there is no call to
> > rust_helper_refcount_inc). Benchmarking Binder also results in an
> > improvement from this change.
> >
> > This patch is complementary to:
> > https://lore.kernel.org/all/20251202-define-rust-helper-v1-0-a2e13cbc17a6@google.com/
> >
> > Signed-off-by: Alice Ryhl <aliceryhl@google.com>
>
> I get the following modpost errors when building with this applied on top
> of v6.19-rc4:
>
> ERROR: modpost: "__SCK__WARN_trap" [drivers/gpu/drm/nova/nova.ko] undefined!
> ERROR: modpost: "__SCK__WARN_trap" [drivers/gpu/nova-core/nova_core.ko] undefined!
> ERROR: modpost: "__SCK__WARN_trap" [drivers/block/rnull/rnull_mod.ko] undefined!
> ERROR: modpost: "__SCK__WARN_trap" [samples/rust/rust_minimal.ko] undefined!
> ERROR: modpost: "__SCK__WARN_trap" [samples/rust/rust_misc_device.ko] undefined!
> ERROR: modpost: "__SCK__WARN_trap" [samples/rust/rust_print.ko] undefined!
> ERROR: modpost: "__SCK__WARN_trap" [samples/rust/rust_dma.ko] undefined!
> ERROR: modpost: "__SCK__WARN_trap" [samples/rust/rust_driver_pci.ko] undefined!
> ERROR: modpost: "__SCK__WARN_trap" [samples/rust/rust_driver_platform.ko] undefined!
> ERROR: modpost: "__SCK__WARN_trap" [samples/rust/rust_driver_faux.ko] undefined!
Looks like it used the wrong static_call_mod() version, was MODULE
defined?
next prev parent reply other threads:[~2026-01-07 12:35 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-12-02 20:27 [PATCH 0/4] Inline helpers into Rust without full LTO Alice Ryhl
2025-12-02 20:27 ` [PATCH 1/4] vmalloc: export vrealloc_node_align_noprof Alice Ryhl
2025-12-02 20:27 ` [PATCH 2/4] rust: helpers: #define __rust_helper Alice Ryhl
2026-01-07 11:49 ` Andreas Hindborg
2025-12-02 20:27 ` [PATCH 3/4] kbuild: rust: add `CONFIG_RUSTC_CLANG_LLVM_COMPATIBLE` Alice Ryhl
2025-12-02 20:27 ` [PATCH 4/4] build: rust: provide an option to inline C helpers into Rust Alice Ryhl
2025-12-03 0:40 ` Matthew Maurer
2025-12-03 18:09 ` Gary Guo
2026-01-07 12:10 ` Andreas Hindborg
2025-12-03 21:25 ` Nathan Chancellor
2025-12-03 23:25 ` Matthew Maurer
2025-12-04 9:46 ` Alice Ryhl
2025-12-04 10:07 ` Peter Zijlstra
2025-12-04 10:23 ` Alice Ryhl
2025-12-04 11:11 ` Peter Zijlstra
2025-12-04 11:57 ` Miguel Ojeda
2025-12-04 12:39 ` Peter Zijlstra
2025-12-04 13:03 ` Alice Ryhl
2025-12-04 12:49 ` Emilio Cobos Álvarez
2025-12-04 13:15 ` Alice Ryhl
2025-12-04 14:27 ` Peter Zijlstra
2025-12-04 19:29 ` Matthew Maurer
2026-01-07 12:23 ` [PATCH 0/4] Inline helpers into Rust without full LTO Andreas Hindborg
2026-01-07 12:35 ` Peter Zijlstra [this message]
2026-01-07 13:12 ` Andreas Hindborg
2026-01-07 13:18 ` Peter Zijlstra
2026-01-07 13:40 ` Andreas Hindborg
2026-01-07 13:42 ` Alice Ryhl
2026-01-07 14:01 ` Peter Zijlstra
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=20260107123528.GF2393663@noisy.programming.kicks-ass.net \
--to=peterz@infradead.org \
--cc=a.hindborg@kernel.org \
--cc=acourbot@nvidia.com \
--cc=akpm@linux-foundation.org \
--cc=aliceryhl@google.com \
--cc=bjorn3_gh@protonmail.com \
--cc=boqun.feng@gmail.com \
--cc=dakr@kernel.org \
--cc=gary@garyguo.net \
--cc=justinstitt@google.com \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=llvm@lists.linux.dev \
--cc=lossin@kernel.org \
--cc=mark.rutland@arm.com \
--cc=mmaurer@google.com \
--cc=morbo@google.com \
--cc=nathan@kernel.org \
--cc=nick.desaulniers+lkml@gmail.com \
--cc=nicolas.schier@linux.dev \
--cc=nouveau@lists.freedesktop.org \
--cc=ojeda@kernel.org \
--cc=rust-for-linux@vger.kernel.org \
--cc=tmgross@umich.edu \
--cc=urezki@gmail.com \
--cc=will@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.