From: Andreas Hindborg <a.hindborg@kernel.org>
To: "Boqun Feng" <boqun.feng@gmail.com>,
"Miguel Ojeda" <ojeda@kernel.org>,
"Alex Gaynor" <alex.gaynor@gmail.com>,
"Gary Guo" <gary@garyguo.net>,
"Björn Roy Baron" <bjorn3_gh@protonmail.com>,
"Benno Lossin" <lossin@kernel.org>,
"Alice Ryhl" <aliceryhl@google.com>,
"Trevor Gross" <tmgross@umich.edu>,
"Danilo Krummrich" <dakr@kernel.org>,
"Jens Axboe" <axboe@kernel.dk>,
"Breno Leitao" <leitao@debian.org>
Cc: linux-block@vger.kernel.org, rust-for-linux@vger.kernel.org,
linux-kernel@vger.kernel.org,
Andreas Hindborg <a.hindborg@kernel.org>,
Daniel Almeida <daniel.almeida@collabora.com>
Subject: [PATCH v7 00/17] rnull: add configfs, remote completion to rnull
Date: Tue, 02 Sep 2025 11:54:54 +0200 [thread overview]
Message-ID: <20250902-rnull-up-v6-16-v7-0-b5212cc89b98@kernel.org> (raw)
This series adds configuration via configfs and remote completion to
the rnull driver. The series also includes a set of changes to the
rust block device driver API: a few cleanup patches, and a few features
supporting the rnull changes.
The series removes the raw buffer formatting logic from `kernel::block`
and improves the logic available in `kernel::string` to support the same
use as the removed logic.
This series is a smaller subset of the patches available in the
downstream rnull tree. I hope to minimize the delta between upstream
and downstream over the next few kernel releases.
Signed-off-by: Andreas Hindborg <a.hindborg@kernel.org>
---
Changes in v7:
- Fix name of `kstrtobool_bytes` in commit message of patch 06/18.
- Fix stale safety comments in patch 15/18.
- Refactor `kstrtobool_raw` for readability.
- Link to v6: https://lore.kernel.org/r/20250822-rnull-up-v6-16-v6-0-ec65006e2f07@kernel.org
Changes in v6:
- Move re-export of `configfs_attrs` next to macro.
- Use implicit coersion to pointer in `kstrtobool`.
- Change the name of `bool_to_bytes` to `kstrtobool_bytes` and improve the implementation.
- Remove a useless pointer cast in "rust: block: add `GenDisk` private data support".
- Get `GFP_KERNEL` from the prelude in "rnull: enable configuration via `configfs`".
- Rebased on v6.17-rc2.
- Link to v5: https://lore.kernel.org/r/20250815-rnull-up-v6-16-v5-0-581453124c15@kernel.org
Changes in v5:
- Re-export `configfs_attrs` from the `configfs` module.
- Remove transient stray dead code `NullTerminatedFormatter::from_array`.
- Use `kstrtobool` when parsing boolean values through configfs.
- Remove a stray space in `pin_init!` macro invocation.
- Remove useless calls to `ptr::cast` when retrieving `queue_data`.
- Rearrange positioning of safety comments.
- Link to v4: https://lore.kernel.org/r/20250812-rnull-up-v6-16-v4-0-ed801dd3ba5c@kernel.org
Changes in v4:
- Rebase on v6.17-rc1
- Merge patches that expose `str::{Formatter, RawFormatter}` publicly.
- Remove `NullTerminatedFormatter::from_array`.
- Change signature of `Formatter::new`.
- Change invariant wording for `NullTerminatedFormatter`.
- Add missing period in comment for `SECTOR_MASK`.
- Rephrase docstring for PAGE_SECTORS_SHIFT.
- Use `write_str` rather than `write_fmt` where applicable.
- Improve boolean parsing in rnull configfs interface.
- Be explicit when intentionally dropping data (GenDisk::drop).
- Add minimum size invariant to `NullTerminatedFormatter`.
- Import `EINVAL` from the prelude.
- Link to v3: https://lore.kernel.org/r/20250711-rnull-up-v6-16-v3-0-3a262b4e2921@kernel.org
Changes in v3:
- Rename `NullBorrowFormatter` as `NullTerminatedFormatter`.
- Remove `pos` from `NullBorrowFormatter`.
- Call into `Self::new` in `NullBorrowFormatter::from_array`.
- Use `Option` return type in `NullBorrowFormatter::from_array`
- Use `Option` return type in `NullBorrowFormatter::new`.
- Remove `BorrowFormatter` and update `Formatter` with a generic lifetime.
- Split visibility change of `str::Formatter` into separate patch.
- Link to v2: https://lore.kernel.org/r/20250708-rnull-up-v6-16-v2-0-ab93c0ff429b@kernel.org
Changes in v2:
- Rework formatter logic. Add two new formatters that write to slices,
one of which adds a trailing null byte.
- Reorder and split patches so that changes are more clear.
- Fix a typo in soft-irq patch summary.
- Link to v1: https://lore.kernel.org/r/20250616-rnull-up-v6-16-v1-0-a4168b8e76b2@kernel.org
---
Andreas Hindborg (17):
rust: str: normalize imports in `str.rs`
rust: str: allow `str::Formatter` to format into `&mut [u8]`.
rust: str: expose `str::{Formatter, RawFormatter}` publicly.
rust: str: introduce `NullTerminatedFormatter`
rust: str: introduce `kstrtobool` function
rust: configfs: re-export `configfs_attrs` from `configfs` module
rust: block: normalize imports for `gen_disk.rs`
rust: block: use `NullTerminatedFormatter`
rust: block: remove `RawWriter`
rust: block: remove trait bound from `mq::Request` definition
rust: block: add block related constants
rnull: move driver to separate directory
rnull: enable configuration via `configfs`
rust: block: add `GenDisk` private data support
rust: block: mq: fix spelling in a safety comment
rust: block: add remote completion to `Request`
rnull: add soft-irq completion support
MAINTAINERS | 2 +-
drivers/block/Kconfig | 10 +-
drivers/block/Makefile | 4 +-
drivers/block/rnull.rs | 80 -----------
drivers/block/rnull/Kconfig | 13 ++
drivers/block/rnull/Makefile | 3 +
drivers/block/rnull/configfs.rs | 262 +++++++++++++++++++++++++++++++++++++
drivers/block/rnull/rnull.rs | 104 +++++++++++++++
rust/kernel/block.rs | 13 ++
rust/kernel/block/mq.rs | 14 +-
rust/kernel/block/mq/gen_disk.rs | 54 ++++++--
rust/kernel/block/mq/operations.rs | 65 +++++++--
rust/kernel/block/mq/raw_writer.rs | 55 --------
rust/kernel/block/mq/request.rs | 21 ++-
rust/kernel/configfs.rs | 2 +
rust/kernel/str.rs | 162 +++++++++++++++++++++--
samples/rust/rust_configfs.rs | 2 +-
17 files changed, 674 insertions(+), 192 deletions(-)
---
base-commit: c17b750b3ad9f45f2b6f7e6f7f4679844244f0b9
change-id: 20250616-rnull-up-v6-16-b4571e28feee
Best regards,
--
Andreas Hindborg <a.hindborg@kernel.org>
next reply other threads:[~2025-09-02 9:56 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-02 9:54 Andreas Hindborg [this message]
2025-09-02 9:54 ` [PATCH v7 01/17] rust: str: normalize imports in `str.rs` Andreas Hindborg
2025-09-02 9:54 ` [PATCH v7 02/17] rust: str: allow `str::Formatter` to format into `&mut [u8]` Andreas Hindborg
2025-09-02 9:54 ` [PATCH v7 03/17] rust: str: expose `str::{Formatter, RawFormatter}` publicly Andreas Hindborg
2025-09-02 9:54 ` [PATCH v7 04/17] rust: str: introduce `NullTerminatedFormatter` Andreas Hindborg
2025-09-02 9:54 ` [PATCH v7 05/17] rust: str: introduce `kstrtobool` function Andreas Hindborg
2025-09-02 11:05 ` Alice Ryhl
2025-09-02 9:55 ` [PATCH v7 06/17] rust: configfs: re-export `configfs_attrs` from `configfs` module Andreas Hindborg
2025-09-02 9:55 ` [PATCH v7 07/17] rust: block: normalize imports for `gen_disk.rs` Andreas Hindborg
2025-09-02 9:55 ` [PATCH v7 08/17] rust: block: use `NullTerminatedFormatter` Andreas Hindborg
2025-09-02 9:55 ` [PATCH v7 09/17] rust: block: remove `RawWriter` Andreas Hindborg
2025-09-02 9:55 ` [PATCH v7 10/17] rust: block: remove trait bound from `mq::Request` definition Andreas Hindborg
2025-09-02 9:55 ` [PATCH v7 11/17] rust: block: add block related constants Andreas Hindborg
2025-09-02 9:55 ` [PATCH v7 12/17] rnull: move driver to separate directory Andreas Hindborg
2025-09-02 9:55 ` [PATCH v7 13/17] rnull: enable configuration via `configfs` Andreas Hindborg
2025-09-02 9:55 ` [PATCH v7 14/17] rust: block: add `GenDisk` private data support Andreas Hindborg
2025-09-02 9:55 ` [PATCH v7 15/17] rust: block: mq: fix spelling in a safety comment Andreas Hindborg
2025-09-02 9:55 ` [PATCH v7 16/17] rust: block: add remote completion to `Request` Andreas Hindborg
2025-09-02 9:55 ` [PATCH v7 17/17] rnull: add soft-irq completion support Andreas Hindborg
2025-09-02 19:40 ` [PATCH v7 00/17] rnull: add configfs, remote completion to rnull Daniel Almeida
2025-09-02 22:22 ` Jens Axboe
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250902-rnull-up-v6-16-v7-0-b5212cc89b98@kernel.org \
--to=a.hindborg@kernel.org \
--cc=alex.gaynor@gmail.com \
--cc=aliceryhl@google.com \
--cc=axboe@kernel.dk \
--cc=bjorn3_gh@protonmail.com \
--cc=boqun.feng@gmail.com \
--cc=dakr@kernel.org \
--cc=daniel.almeida@collabora.com \
--cc=gary@garyguo.net \
--cc=leitao@debian.org \
--cc=linux-block@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lossin@kernel.org \
--cc=ojeda@kernel.org \
--cc=rust-for-linux@vger.kernel.org \
--cc=tmgross@umich.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).