Re: [PATCH] rust: file: optimize rust symbol generation for FileDescriptorReservation

From: Kunwu Chan
Date: Thu Mar 13 2025 - 22:34:26 EST


On 2025/3/13 18:47, Alice Ryhl wrote:
On Thu, Mar 13, 2025 at 04:45:25PM +0800, Kunwu Chan wrote:
From: Kunwu Chan <kunwu.chan@xxxxxxxxxxx>

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'.*FileDescriptorReservation | rustfilt
ffff8000805b6ef0 T <kernel::fs::file::FileDescriptorReservation>
::fd_install
ffff8000805b6e60 T <kernel::fs::file::FileDescriptorReservation>
::get_unused_fd_flags
ffff8000805b6f08 T <kernel::fs::file::FileDescriptorReservation
as core::ops::drop::Drop>::drop

These Rust symbols are trivial wrappers around the C functions
fd_install, put_unused_fd and put_task_struct.It
doesn't make sense to go through a trivial wrapper for these
functions, so mark them inline.

After doing so, the above symbol will not in output.

Signed-off-by: Kunwu Chan <kunwu.chan@xxxxxxxxxxx>
Co-developed-by: Grace Deng <Grace.Deng006@xxxxxxxxx>
Signed-off-by: Grace Deng <Grace.Deng006@xxxxxxxxx>
A few notes:

* Your own Signed-off-by must always be last.
* You're missing Link: and Suggested-by: tags.

Thanks for the reply.

I'll change my own Signed-off-by be last and add Link and Suggested-by as the following:

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

* There are some grammar issues, e.g. a missing space before "It" and
the phrase "will not in output" is not good.
I'll  add a space before "It" and remove the last line.
* Let's also add the marker to `reserved_fd` to be on the safe side.
Sure, I'll make 'reserved_fd ' inline in v2.
* I think it is easier to read the symbols if you list each sybmol on
one line like this:

ffff8000805b6ef0 T <kernel::fs::file::FileDescriptorReservation>::fd_install
ffff8000805b6e60 T <kernel::fs::file::FileDescriptorReservation>::get_unused_fd_flags
ffff8000805b6f08 T <kernel::fs::file::FileDescriptorReservation as core::ops::drop::Drop>::drop

If in one line, checkpatch.pl will report a warning:

WARNING:Prefer a maximum 75 chars per line (possible unwrapped commit description?)

If no need to  bother with the warning, I'll change it to one line in v2.


Alice



--
Thanks,
Kunwu.Chan(Tao.chan)