[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250430-debugfs-rust-v2-0-2e8d3985812b@google.com>
Date: Wed, 30 Apr 2025 23:31:55 +0000
From: Matthew Maurer <mmaurer@...gle.com>
To: Miguel Ojeda <ojeda@...nel.org>, Alex Gaynor <alex.gaynor@...il.com>,
Boqun Feng <boqun.feng@...il.com>, Gary Guo <gary@...yguo.net>,
"Björn Roy Baron" <bjorn3_gh@...tonmail.com>, Benno Lossin <benno.lossin@...ton.me>,
Andreas Hindborg <a.hindborg@...nel.org>, Alice Ryhl <aliceryhl@...gle.com>,
Trevor Gross <tmgross@...ch.edu>, Danilo Krummrich <dakr@...nel.org>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>, "Rafael J. Wysocki" <rafael@...nel.org>,
Sami Tolvanen <samitolvanen@...gle.com>, Timur Tabi <ttabi@...dia.com>
Cc: linux-kernel@...r.kernel.org, rust-for-linux@...r.kernel.org,
Matthew Maurer <mmaurer@...gle.com>
Subject: [PATCH v2 0/4] rust: DebugFS Bindings
This series provides safe DebugFS bindings for Rust, with a sample
driver using them.
This series currently only supports referencing `'static` lifetime
objects, because we need to know the objects outlive the DebugFS files.
A subsequent series may be able to relax this.
A few points that might be worth discussing on the API here:
1. The handles returned by directory and file creation currently remove
themselves when they go out of scope. This behavior can be suppressed
via `.keep()`. We could flip it to the other sense, and require that
a returned handle be *explicitly* upconverted to get removed on drop.
If we did this, we could consider making a different default for
`subdir` vs `Dir::new`. The downside of doing this would be more
complex types in the interface.
2. File creation currently returns a handle to preserve expressiveness
(the ability to delete a file without deleting the directory it's
in). I see (e.g. in ceph) explicit deletion of files, but this
appears to be legacy code from before `recursive_remove` as opposed
to wanting manual deletion. We could choose not to provide a handle
here.
Signed-off-by: Matthew Maurer <mmaurer@...gle.com>
---
Changes in v2:
- Drop support for builder / pinned bindings in initial series
- Remove `ARef` usage to abstract the dentry nature of handles
- Remove error handling to discourage users from caring whether DebugFS
is enabled.
- Support CONFIG_DEBUG_FS=n while leaving the API available
- Fixed mistaken decimal/octal mixup
- Doc/comment cleanup
- Link to v1: https://lore.kernel.org/r/20250429-debugfs-rust-v1-0-6b6e7cb7929f@google.com
---
Matthew Maurer (4):
rust: debugfs: Bind DebugFS directory creation
rust: debugfs: Bind file creation for long-lived Display
rust: debugfs: Support format hooks
rust: samples: Add debugfs sample
MAINTAINERS | 2 +
rust/bindings/bindings_helper.h | 1 +
rust/kernel/debugfs.rs | 345 ++++++++++++++++++++++++++++++++++++++++
rust/kernel/lib.rs | 1 +
samples/rust/Kconfig | 11 ++
samples/rust/Makefile | 1 +
samples/rust/rust_debugfs.rs | 37 +++++
7 files changed, 398 insertions(+)
---
base-commit: b6a7783d306baf3150ac54cd5124f6e85dd375b0
change-id: 20250428-debugfs-rust-3cd5c97eb7d1
Best regards,
--
Matthew Maurer <mmaurer@...gle.com>
Powered by blists - more mailing lists