rust/kernel/fs/file.rs | 3 +++ 1 file changed, 3 insertions(+)
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'.*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@hotmail.com>
Co-developed-by: Grace Deng <Grace.Deng006@Gmail.com>
Signed-off-by: Grace Deng <Grace.Deng006@Gmail.com>
---
rust/kernel/fs/file.rs | 3 +++
1 file changed, 3 insertions(+)
diff --git a/rust/kernel/fs/file.rs b/rust/kernel/fs/file.rs
index e03dbe14d62a..3dda2bfca1a6 100644
--- a/rust/kernel/fs/file.rs
+++ b/rust/kernel/fs/file.rs
@@ -392,6 +392,7 @@ pub struct FileDescriptorReservation {
impl FileDescriptorReservation {
/// Creates a new file descriptor reservation.
+ #[inline]
pub fn get_unused_fd_flags(flags: u32) -> Result<Self> {
// SAFETY: FFI call, there are no safety requirements on `flags`.
let fd: i32 = unsafe { bindings::get_unused_fd_flags(flags) };
@@ -413,6 +414,7 @@ pub fn reserved_fd(&self) -> u32 {
///
/// The previously reserved file descriptor is bound to `file`. This method consumes the
/// [`FileDescriptorReservation`], so it will not be usable after this call.
+ #[inline]
pub fn fd_install(self, file: ARef<File>) {
// SAFETY: `self.fd` was previously returned by `get_unused_fd_flags`. We have not yet used
// the fd, so it is still valid, and `current` still refers to the same task, as this type
@@ -433,6 +435,7 @@ pub fn fd_install(self, file: ARef<File>) {
}
impl Drop for FileDescriptorReservation {
+ #[inline]
fn drop(&mut self) {
// SAFETY: By the type invariants of this type, `self.fd` was previously returned by
// `get_unused_fd_flags`. We have not yet used the fd, so it is still valid, and `current`
--
2.43.0
On Thu, Mar 13, 2025 at 04:45:25PM +0800, Kunwu Chan wrote: > 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'.*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@hotmail.com> > Co-developed-by: Grace Deng <Grace.Deng006@Gmail.com> > Signed-off-by: Grace Deng <Grace.Deng006@Gmail.com> 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
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@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'.*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@hotmail.com> >> Co-developed-by: Grace Deng <Grace.Deng006@Gmail.com> >> Signed-off-by: Grace Deng <Grace.Deng006@Gmail.com> > 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@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> > * 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)
On Fri, Mar 14, 2025 at 3:34 AM Kunwu Chan <kunwu.chan@linux.dev> wrote: > > * 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. You could do this: ... T <kernel::fs::file::FileDescriptorReservation>::fd_install but if it's still too long I'd just ignore it. Alice
On 2025/3/14 17:21, Alice Ryhl wrote: > On Fri, Mar 14, 2025 at 3:34 AM Kunwu Chan <kunwu.chan@linux.dev> wrote: >>> * 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. > You could do this: > ... T <kernel::fs::file::FileDescriptorReservation>::fd_install > but if it's still too long I'd just ignore it. Thanks, I'll change it in v2. > > Alice -- Thanks, Kunwu.Chan
© 2016 - 2025 Red Hat, Inc.