linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>
To: Alice Ryhl <aliceryhl@google.com>
Cc: "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>,
	"Andreas Hindborg" <a.hindborg@kernel.org>,
	"Trevor Gross" <tmgross@umich.edu>,
	"Danilo Krummrich" <dakr@kernel.org>,
	"Alexandre Courbot" <acourbot@nvidia.com>,
	"Will Deacon" <will@kernel.org>,
	"Peter Zijlstra" <peterz@infradead.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, "Matthew Maurer" <mmaurer@google.com>
Subject: Re: [PATCH v2 0/3] Inline helpers into Rust without full LTO
Date: Sun, 29 Mar 2026 19:33:45 +0200	[thread overview]
Message-ID: <CANiq72=ns52NksGEj-5kBCkD0RxH12wKawr2pH_QvHshSsz6Kw@mail.gmail.com> (raw)
In-Reply-To: <20260203-inline-helpers-v2-0-beb8547a03c9@google.com>

On Tue, Feb 3, 2026 at 12:34 PM Alice Ryhl <aliceryhl@google.com> wrote:
>
> 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.

Applied to `rust-next` -- thanks everyone!

    [ Fixed typo. - Miguel ]

    [ Andreas writes:

        For the rnull driver, enabling helper inlining with this patch
        gives an average speedup of 2% over the set of 120 workloads that
        we publish on [2].

        Link: https://rust-for-linux.com/null-block-driver [2]

      This series also uncovered a pre-existing UB instance thanks to an
      `objtool` warning which I noticed while testing the series (details
      in the mailing list).

          - Miguel ]

    [ Some changes, apart from the rebase:

      - Added "(EXPERIMENTAL)" to Kconfig as the commit mentions.

      - Added `depends on ARM64 || X86_64` and `!UML` for now, since this is
        experimental, other architectures may require other changes (e.g.
        the issues I mentioned in the mailing list for ARM and UML) and they
        are not really tested so far. So let arch maintainers pick this up
        if they think it is worth it.

      - Gated the `cmd_ld_single` step also into the new mode, which also
        means that any possible future `objcopy` step is done after the
        translation, as expected.

      - Added `.gitignore` for `.bc` with exception for existing script.

      - Added `part-of-*` for helpers bitcode files as discussed, and
        dropped `$(if $(filter %_module.bc,$@),-DMODULE)` since `-DMODULE`
        is already there (would be duplicated otherwise).

      - Moved `LLVM_LINK` to keep binutils list alphabetized.

      - Fixed typo in title.

      - Dropped second `cmd_ld_single` commit message paragraph.

          - Miguel ]

...to boldly go where no Rust build has gone before.

Cheers,
Miguel


      parent reply	other threads:[~2026-03-29 17:34 UTC|newest]

Thread overview: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-02-03 11:34 Alice Ryhl
2026-02-03 11:34 ` [PATCH v2 1/3] kbuild: rust: add `CONFIG_RUSTC_CLANG_LLVM_COMPATIBLE` Alice Ryhl
2026-02-03 11:49   ` Will Deacon
2026-02-03 12:02     ` Alice Ryhl
2026-03-05 10:12   ` Nicolas Schier
2026-03-05 10:51     ` Alice Ryhl
2026-03-14  0:26   ` Nathan Chancellor
2026-02-03 11:34 ` [PATCH v2 2/3] rust: helpers: #define __rust_helper Alice Ryhl
2026-03-14  0:28   ` Nathan Chancellor
2026-02-03 11:34 ` [PATCH v2 3/3] build: rust: provide an option to inline C helpers into Rust Alice Ryhl
2026-03-06 17:32   ` Alice Ryhl
2026-03-14  0:40     ` Nathan Chancellor
2026-03-14 11:22       ` Alice Ryhl
2026-03-16 21:34         ` Nathan Chancellor
2026-03-17  8:02           ` Miguel Ojeda
2026-03-14  0:34   ` Nathan Chancellor
2026-03-17  8:25 ` [PATCH v2 0/3] Inline helpers into Rust without full LTO Andreas Hindborg
2026-03-22 19:21 ` Miguel Ojeda
2026-03-22 19:38   ` Miguel Ojeda
2026-03-23 13:54     ` Mark Brown
2026-03-23 14:53       ` Miguel Ojeda
2026-03-22 19:46   ` Miguel Ojeda
2026-03-23  8:49     ` Marek Szyprowski
2026-03-25  1:58       ` Miguel Ojeda
2026-03-26 21:12     ` Arnd Bergmann
2026-03-27  8:02       ` Miguel Ojeda
2026-03-27  8:16       ` Marek Szyprowski
2026-03-23  0:03   ` Miguel Ojeda
2026-03-23  3:04     ` Andrew Lunn
2026-03-23  3:24       ` Miguel Ojeda
2026-03-23 12:54         ` Andrew Lunn
2026-03-23 13:13           ` Gary Guo
2026-03-23 13:28             ` Andrew Lunn
2026-03-23 13:34               ` Miguel Ojeda
2026-03-23 14:39               ` Alice Ryhl
2026-03-23 13:14           ` Miguel Ojeda
2026-03-23 10:03     ` Russell King (Oracle)
2026-03-23 13:26       ` Miguel Ojeda
2026-03-26 10:10       ` Alice Ryhl
2026-03-26 13:47         ` Miguel Ojeda
2026-03-26 14:31           ` Christian Schrefl
2026-03-26 15:18             ` Russell King (Oracle)
2026-03-26 17:30               ` Miguel Ojeda
2026-03-30 21:09                 ` Christian Schrefl
2026-03-31 11:44                   ` Arnd Bergmann
2026-03-26 21:33               ` Arnd Bergmann
2026-03-27  7:56                 ` Geert Uytterhoeven
2026-03-27  9:02                   ` Arnd Bergmann
2026-03-27 13:41                     ` Arnd Bergmann
2026-03-30 12:03                     ` Geert Uytterhoeven
2026-03-30 12:13                       ` Arnd Bergmann
2026-03-30 12:17                         ` Geert Uytterhoeven
2026-03-26 17:31             ` Miguel Ojeda
2026-03-26  2:42   ` Nathan Chancellor
2026-03-26 17:13     ` Miguel Ojeda
2026-03-26  5:34   ` David Gow
2026-03-29 17:33 ` Miguel Ojeda [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='CANiq72=ns52NksGEj-5kBCkD0RxH12wKawr2pH_QvHshSsz6Kw@mail.gmail.com' \
    --to=miguel.ojeda.sandonis@gmail.com \
    --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=ojeda@kernel.org \
    --cc=peterz@infradead.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox