* [PATCH v2] rust: file: optimize rust symbol generation for FileDescriptorReservation
@ 2025-03-17 2:37 Kunwu Chan
2025-03-17 10:24 ` Alice Ryhl
2025-03-18 8:26 ` Christian Brauner
0 siblings, 2 replies; 5+ messages in thread
From: Kunwu Chan @ 2025-03-17 2:37 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'.*FileDescriptorReservation | rustfilt
... T <kernel::fs::file::FileDescriptorReservation>::fd_install
... T <kernel::fs::file::FileDescriptorReservation>::get_unused_fd_flags
... 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.
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
- Mark 'reserved_fd' as inline
- Reword commit msg
---
rust/kernel/fs/file.rs | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/rust/kernel/fs/file.rs b/rust/kernel/fs/file.rs
index e03dbe14d62a..736209a1b983 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) };
@@ -405,6 +406,7 @@ pub fn get_unused_fd_flags(flags: u32) -> Result<Self> {
}
/// Returns the file descriptor number that was reserved.
+ #[inline]
pub fn reserved_fd(&self) -> u32 {
self.fd
}
@@ -413,6 +415,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 +436,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
^ permalink raw reply related [flat|nested] 5+ messages in thread* Re: [PATCH v2] rust: file: optimize rust symbol generation for FileDescriptorReservation
2025-03-17 2:37 [PATCH v2] rust: file: optimize rust symbol generation for FileDescriptorReservation Kunwu Chan
@ 2025-03-17 10:24 ` Alice Ryhl
2025-03-18 8:24 ` Christian Brauner
2025-03-18 8:26 ` Christian Brauner
1 sibling, 1 reply; 5+ messages in thread
From: Alice Ryhl @ 2025-03-17 10:24 UTC (permalink / raw)
To: Kunwu Chan, Christian Brauner
Cc: ojeda, alex.gaynor, boqun.feng, gary, bjorn3_gh, benno.lossin,
a.hindborg, tmgross, dakr, nathan, nick.desaulniers+lkml, morbo,
justinstitt, rust-for-linux, linux-kernel, llvm, Kunwu Chan,
Grace Deng
Adding Christian Brauner who originally merged the
rust/kernel/fs/file.rs file.
On Mon, Mar 17, 2025 at 10:37:02AM +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
> ... T <kernel::fs::file::FileDescriptorReservation>::fd_install
> ... T <kernel::fs::file::FileDescriptorReservation>::get_unused_fd_flags
> ... 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.
>
> 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>
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v2] rust: file: optimize rust symbol generation for FileDescriptorReservation
2025-03-17 10:24 ` Alice Ryhl
@ 2025-03-18 8:24 ` Christian Brauner
0 siblings, 0 replies; 5+ messages in thread
From: Christian Brauner @ 2025-03-18 8:24 UTC (permalink / raw)
To: Alice Ryhl
Cc: Kunwu Chan, ojeda, alex.gaynor, boqun.feng, gary, bjorn3_gh,
benno.lossin, a.hindborg, tmgross, dakr, nathan,
nick.desaulniers+lkml, morbo, justinstitt, rust-for-linux,
linux-kernel, llvm, Kunwu Chan, Grace Deng
On Mon, Mar 17, 2025 at 10:24:15AM +0000, Alice Ryhl wrote:
> Adding Christian Brauner who originally merged the
> rust/kernel/fs/file.rs file.
>
> On Mon, Mar 17, 2025 at 10:37:02AM +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
> > ... T <kernel::fs::file::FileDescriptorReservation>::fd_install
> > ... T <kernel::fs::file::FileDescriptorReservation>::get_unused_fd_flags
> > ... 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.
> >
> > 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>
>
> Reviewed-by: Alice Ryhl <aliceryhl@google.com>
I mentioned various times that anything fs related goes through the VFS
tree, I hope that we're all still aware of this agreement.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v2] rust: file: optimize rust symbol generation for FileDescriptorReservation
2025-03-17 2:37 [PATCH v2] rust: file: optimize rust symbol generation for FileDescriptorReservation Kunwu Chan
2025-03-17 10:24 ` Alice Ryhl
@ 2025-03-18 8:26 ` Christian Brauner
1 sibling, 0 replies; 5+ messages in thread
From: Christian Brauner @ 2025-03-18 8:26 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, Kunwu Chan
Cc: Christian Brauner, rust-for-linux, linux-kernel, llvm, Kunwu Chan,
Grace Deng
On Mon, 17 Mar 2025 10:37:02 +0800, Kunwu Chan wrote:
> 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
> ... T <kernel::fs::file::FileDescriptorReservation>::fd_install
> ... T <kernel::fs::file::FileDescriptorReservation>::get_unused_fd_flags
> ... T <kernel::fs::file::FileDescriptorReservation as core::ops::drop::Drop>::drop
>
> [...]
Applied to the vfs-6.15.rust branch of the vfs/vfs.git tree.
Patches in the vfs-6.15.rust branch should appear in linux-next soon.
Please report any outstanding bugs that were missed during review in a
new review to the original patch series allowing us to drop it.
It's encouraged to provide Acked-bys and Reviewed-bys even though the
patch has now been applied. If possible patch trailers will be updated.
Note that commit hashes shown below are subject to change due to rebase,
trailer updates or similar. If in doubt, please check the listed branch.
tree: https://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs.git
branch: vfs-6.15.rust
[1/1] rust: file: optimize rust symbol generation for FileDescriptorReservation
https://git.kernel.org/vfs/vfs/c/e27b0e3c54f0
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v2] rust: file: optimize rust symbol generation for FileDescriptorReservation
@ 2025-03-17 10:29 Benno Lossin
0 siblings, 0 replies; 5+ messages in thread
From: Benno Lossin @ 2025-03-17 10:29 UTC (permalink / raw)
To: Kunwu Chan, ojeda, alex.gaynor, boqun.feng, gary, bjorn3_gh,
a.hindborg, aliceryhl, tmgross, dakr, nathan,
nick.desaulniers+lkml, morbo, justinstitt
Cc: rust-for-linux, linux-kernel, llvm, Kunwu Chan, Grace Deng
On Mon Mar 17, 2025 at 3:37 AM CET, 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
> ... T <kernel::fs::file::FileDescriptorReservation>::fd_install
> ... T <kernel::fs::file::FileDescriptorReservation>::get_unused_fd_flags
> ... 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.
>
> 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>
Reviewed-by: Benno Lossin <benno.lossin@proton.me>
---
Cheers,
Benno
> ---
> Changes in v2:
> - Add link and Suggested-by
> - Mark 'reserved_fd' as inline
> - Reword commit msg
> ---
> rust/kernel/fs/file.rs | 4 ++++
> 1 file changed, 4 insertions(+)
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2025-03-18 8:26 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-03-17 2:37 [PATCH v2] rust: file: optimize rust symbol generation for FileDescriptorReservation Kunwu Chan
2025-03-17 10:24 ` Alice Ryhl
2025-03-18 8:24 ` Christian Brauner
2025-03-18 8:26 ` Christian Brauner
-- strict thread matches above, loose matches on Subject: below --
2025-03-17 10:29 Benno Lossin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).