[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <c7408be8-52eb-4919-a60d-3cadfa185e02@linux.dev>
Date: Mon, 24 Mar 2025 10:13:29 +0800
From: Kunwu Chan <kunwu.chan@...ux.dev>
To: Boqun Feng <boqun.feng@...il.com>
Cc: ojeda@...nel.org, alex.gaynor@...il.com, gary@...yguo.net,
bjorn3_gh@...tonmail.com, benno.lossin@...ton.me, a.hindborg@...nel.org,
aliceryhl@...gle.com, tmgross@...ch.edu, dakr@...nel.org, nathan@...nel.org,
nick.desaulniers+lkml@...il.com, morbo@...gle.com, justinstitt@...gle.com,
rust-for-linux@...r.kernel.org, linux-kernel@...r.kernel.org,
llvm@...ts.linux.dev, Kunwu Chan <kunwu.chan@...mail.com>,
Grace Deng <Grace.Deng006@...il.com>
Subject: Re: [PATCH v2] rust: sync: optimize Rust symbol generation for
PollCondVar
On 2025/3/24 01:49, Boqun Feng wrote:
> On Mon, Mar 17, 2025 at 10:52:05AM +0800, Kunwu Chan wrote:
>> From: Kunwu Chan <kunwu.chan@...mail.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@...gle.com>
>> Co-developed-by: Grace Deng <Grace.Deng006@...il.com>
>> Signed-off-by: Grace Deng <Grace.Deng006@...il.com>
>> Signed-off-by: Kunwu Chan <kunwu.chan@...mail.com>
>>
> Queued for future tests and reviews. Thanks!
Ok, if need do testing-related work, feel free to contact me
>
> Regards,
> Boqun
>
>> ---
>> 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
>>
--
Thanks,
Kunwu.Chan(Tao.Chan)
Powered by blists - more mailing lists