rust-for-linux.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/6] Rust: support `CPU_MITIGATIONS` and enable `objtool`
@ 2024-07-24 16:14 Miguel Ojeda
  2024-07-24 16:14 ` [PATCH v2 1/6] rust: module: add static pointer to `{init,cleanup}_module()` Miguel Ojeda
                   ` (8 more replies)
  0 siblings, 9 replies; 22+ messages in thread
From: Miguel Ojeda @ 2024-07-24 16:14 UTC (permalink / raw)
  To: Josh Poimboeuf, Peter Zijlstra, Thomas Gleixner, Ingo Molnar,
	Borislav Petkov, Dave Hansen, Masahiro Yamada
  Cc: x86, H. Peter Anvin, Nathan Chancellor, Nicolas Schier,
	Miguel Ojeda, Wedson Almeida Filho, Alex Gaynor, Boqun Feng,
	Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg,
	Alice Ryhl, rust-for-linux, linux-kernel, patches, linux-kbuild

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

^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2024-08-21 15:28 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-07-24 16:14 [PATCH v2 0/6] Rust: support `CPU_MITIGATIONS` and enable `objtool` Miguel Ojeda
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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).