All of lore.kernel.org
 help / color / mirror / Atom feed
From: Miguel Ojeda <ojeda@kernel.org>
To: Josh Poimboeuf <jpoimboe@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	Masahiro Yamada <masahiroy@kernel.org>
Cc: x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
	"Nathan Chancellor" <nathan@kernel.org>,
	"Nicolas Schier" <nicolas@fjasle.eu>,
	"Miguel Ojeda" <ojeda@kernel.org>,
	"Wedson Almeida Filho" <wedsonaf@gmail.com>,
	"Alex Gaynor" <alex.gaynor@gmail.com>,
	"Boqun Feng" <boqun.feng@gmail.com>,
	"Gary Guo" <gary@garyguo.net>,
	"Björn Roy Baron" <bjorn3_gh@protonmail.com>,
	"Benno Lossin" <benno.lossin@proton.me>,
	"Andreas Hindborg" <a.hindborg@samsung.com>,
	"Alice Ryhl" <aliceryhl@google.com>,
	rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org,
	patches@lists.linux.dev, linux-kbuild@vger.kernel.org
Subject: [PATCH v2 0/6] Rust: support `CPU_MITIGATIONS` and enable `objtool`
Date: Wed, 24 Jul 2024 18:14:53 +0200	[thread overview]
Message-ID: <20240724161501.1319115-1-ojeda@kernel.org> (raw)

Hi,

This is an updated series to the CPU mitigations support for Rust. It
also has the patch to enable `objtool`, so that we can start running it
for Rust.

It would be nice to get this applied soon, so that we start being
warning-free (since we already get warnings under IBT builds via
`vmlinux.o`). I am happy to take it through the Rust tree if the x86 and
objtool maintainers give an Acked-by, or through any of the other trees,
as you prefer. Otherwise, I think at this point we would need to make
Rust exclusive to the mitigations, which isn't great.

With this series, again, x86_64 is warning-free with `objtool` enabled. I
tested `-O2`/`-Os` and the Rust versions we support under `-O2` (mainly
for the `noreturn` patch, which uses heuristics), as well as IBT vs. no
IBT (i.e.  running on individual object files vs. in `vmlinux`). I also
did an arm64 build.

Testing is very welcome for this one!

Cheers,
Miguel

v2:
  - Add patch to enable `objtool` for Rust.

  - Add patch to list `noreturn` Rust functions (via heuristics) to avoid
    warnings related to that.

  - Make the `RETHUNK` patch not an RFC since the Rust compiler has
  support for
    it now.

  - Update the names of the migitation config symbols, given the changes
  at e.g.
    commit 7b75782ffd82 ("x86/bugs: Rename CONFIG_MITIGATION_SLS =>
    CONFIG_MITIGATION_SLS").

Miguel Ojeda (6):
  rust: module: add static pointer to `{init,cleanup}_module()`
  x86/rust: support MITIGATION_RETPOLINE
  x86/rust: support MITIGATION_RETHUNK
  x86/rust: support MITIGATION_SLS
  objtool: list `noreturn` Rust functions
  objtool/kbuild/rust: enable objtool for Rust

 arch/x86/Makefile               |  7 ++++++-
 rust/Makefile                   | 22 ++++++++++++--------
 rust/macros/module.rs           | 12 +++++++++++
 scripts/Makefile.build          |  9 +++++++--
 scripts/generate_rust_target.rs | 15 ++++++++++++++
 tools/objtool/check.c           | 36 ++++++++++++++++++++++++++++++++-
 tools/objtool/noreturns.h       |  2 ++
 7 files changed, 91 insertions(+), 12 deletions(-)


base-commit: b1263411112305acf2af728728591465becb45b0
--
2.45.2

             reply	other threads:[~2024-07-24 16:15 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-07-24 16:14 Miguel Ojeda [this message]
2024-07-24 16:14 ` [PATCH v2 1/6] rust: module: add static pointer to `{init,cleanup}_module()` Miguel Ojeda
2024-07-24 19:46   ` Gary Guo
2024-07-25 17:44     ` Miguel Ojeda
2024-07-25 17:46       ` Miguel Ojeda
2024-07-25 17:47     ` Miguel Ojeda
2024-07-30 11:18       ` Gary Guo
2024-07-24 16:14 ` [PATCH v2 2/6] x86/rust: support MITIGATION_RETPOLINE Miguel Ojeda
2024-07-24 19:38   ` Gary Guo
2024-07-24 16:14 ` [PATCH v2 3/6] x86/rust: support MITIGATION_RETHUNK Miguel Ojeda
2024-07-24 19:40   ` Gary Guo
2024-07-24 16:14 ` [PATCH v2 4/6] x86/rust: support MITIGATION_SLS Miguel Ojeda
2024-07-24 19:42   ` Gary Guo
2024-07-24 16:14 ` [PATCH v2 5/6] objtool: list `noreturn` Rust functions Miguel Ojeda
2024-07-24 19:35   ` Gary Guo
2024-07-25  8:33     ` Peter Zijlstra
2024-08-21 15:28       ` Gary Guo
2024-07-24 16:14 ` [PATCH v2 6/6] objtool/kbuild/rust: enable objtool for Rust Miguel Ojeda
2024-07-24 21:51 ` [PATCH v2 0/6] Rust: support `CPU_MITIGATIONS` and enable `objtool` Benno Lossin
2024-07-25  8:38 ` Peter Zijlstra
2024-07-25  9:53   ` Miguel Ojeda
2024-07-25  9:43 ` Alice Ryhl

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=20240724161501.1319115-1-ojeda@kernel.org \
    --to=ojeda@kernel.org \
    --cc=a.hindborg@samsung.com \
    --cc=alex.gaynor@gmail.com \
    --cc=aliceryhl@google.com \
    --cc=benno.lossin@proton.me \
    --cc=bjorn3_gh@protonmail.com \
    --cc=boqun.feng@gmail.com \
    --cc=bp@alien8.de \
    --cc=dave.hansen@linux.intel.com \
    --cc=gary@garyguo.net \
    --cc=hpa@zytor.com \
    --cc=jpoimboe@kernel.org \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=masahiroy@kernel.org \
    --cc=mingo@redhat.com \
    --cc=nathan@kernel.org \
    --cc=nicolas@fjasle.eu \
    --cc=patches@lists.linux.dev \
    --cc=peterz@infradead.org \
    --cc=rust-for-linux@vger.kernel.org \
    --cc=tglx@linutronix.de \
    --cc=wedsonaf@gmail.com \
    --cc=x86@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.