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

From: Alice Ryhl
Date: Thu Mar 13 2025 - 06:47:48 EST


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.
* There are some grammar issues, e.g. a missing space before "It" and
the phrase "will not in output" is not good.
* Let's also add the marker to `reserved_fd` to be on the safe side.
* 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

Alice