All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] rust: sync: optimize Rust symbol generation for PollCondVar
@ 2025-03-17  2:52 Kunwu Chan
  2025-03-17 10:23 ` Benno Lossin
                   ` (3 more replies)
  0 siblings, 4 replies; 6+ messages in thread
From: Kunwu Chan @ 2025-03-17  2:52 UTC (permalink / raw)
  To: ojeda, alex.gaynor, boqun.feng, gary, bjorn3_gh, benno.lossin,
	a.hindborg, aliceryhl, tmgross, dakr, nathan,
	nick.desaulniers+lkml, morbo, justinstitt
  Cc: rust-for-linux, linux-kernel, llvm, Kunwu Chan, Grace Deng

From: Kunwu Chan <kunwu.chan@hotmail.com>

When build the kernel using the llvm-18.1.3-rust-1.85.0-x86_64
with ARCH=arm64, the following symbols are generated:

$nm vmlinux | grep ' _R'.*PollCondVar  | rustfilt
... T <kernel::sync::poll::PollCondVar>::new::{closure#0}::{closure#0}::panic_cold_explicit
... T <kernel::sync::poll::PollCondVar as kernel::init::PinnedDrop>::drop
... T <kernel::sync::poll::PollCondVar as core::ops::drop::Drop>::drop

This Rust symbol
(<kernel::sync::poll::PollCondVar as kernel::init::PinnedDrop>::drop)
is trivial wrappers around the C functions __wake_up_pollfree
and synchronize_rcu. It doesn't make sense to go through a trivial
wrapper for its functions,so mark it inline.

Link: https://github.com/Rust-for-Linux/linux/issues/1145
Suggested-by: Alice Ryhl <aliceryhl@google.com>
Co-developed-by: Grace Deng <Grace.Deng006@Gmail.com>
Signed-off-by: Grace Deng <Grace.Deng006@Gmail.com>
Signed-off-by: Kunwu Chan <kunwu.chan@hotmail.com>

---
Changes in v2:
 - Add link and Suggested-by
 - Reword commit msg
---
 rust/kernel/sync/poll.rs | 1 +
 1 file changed, 1 insertion(+)

diff --git a/rust/kernel/sync/poll.rs b/rust/kernel/sync/poll.rs
index d5f17153b424..a4f92c545fec 100644
--- a/rust/kernel/sync/poll.rs
+++ b/rust/kernel/sync/poll.rs
@@ -107,6 +107,7 @@ fn deref(&self) -> &CondVar {
 
 #[pinned_drop]
 impl PinnedDrop for PollCondVar {
+    #[inline]
     fn drop(self: Pin<&mut Self>) {
         // Clear anything registered using `register_wait`.
         //
-- 
2.43.0


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

end of thread, other threads:[~2025-07-03  8:36 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-03-17  2:52 [PATCH v2] rust: sync: optimize Rust symbol generation for PollCondVar Kunwu Chan
2025-03-17 10:23 ` Benno Lossin
2025-03-20  8:42 ` Alice Ryhl
2025-03-23 17:49 ` Boqun Feng
2025-03-24  2:13   ` Kunwu Chan
2025-07-03  8:36 ` [tip: sched/core] rust: sync: Mark PollCondVar::drop() inline tip-bot2 for Kunwu Chan

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.