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>
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 v4 00/15] rnull: add configfs, remote completion to rnull
Date: Tue, 12 Aug 2025 10:44:18 +0200 [thread overview]
Message-ID: <20250812-rnull-up-v6-16-v4-0-ed801dd3ba5c@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 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 (15):
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: 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 | 273 +++++++++++++++++++++++++++++++++++++
drivers/block/rnull/rnull.rs | 105 ++++++++++++++
rust/kernel/block.rs | 13 ++
rust/kernel/block/mq.rs | 14 +-
rust/kernel/block/mq/gen_disk.rs | 58 ++++++--
rust/kernel/block/mq/operations.rs | 65 +++++++--
rust/kernel/block/mq/raw_writer.rs | 55 --------
rust/kernel/block/mq/request.rs | 21 ++-
rust/kernel/str.rs | 83 +++++++++--
15 files changed, 608 insertions(+), 191 deletions(-)
---
base-commit: 8f5ae30d69d7543eee0d70083daf4de8fe15d585
change-id: 20250616-rnull-up-v6-16-b4571e28feee
Best regards,
--
Andreas Hindborg <a.hindborg@kernel.org>
next reply other threads:[~2025-08-12 8:45 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-08-12 8:44 Andreas Hindborg [this message]
2025-08-12 8:44 ` [PATCH v4 01/15] rust: str: normalize imports in `str.rs` Andreas Hindborg
2025-08-12 8:44 ` [PATCH v4 02/15] rust: str: allow `str::Formatter` to format into `&mut [u8]` Andreas Hindborg
2025-08-13 7:18 ` Alice Ryhl
2025-08-12 8:44 ` [PATCH v4 03/15] rust: str: expose `str::{Formatter, RawFormatter}` publicly Andreas Hindborg
2025-08-13 7:18 ` Alice Ryhl
2025-08-12 8:44 ` [PATCH v4 04/15] rust: str: introduce `NullTerminatedFormatter` Andreas Hindborg
2025-08-13 7:21 ` Alice Ryhl
2025-08-13 12:34 ` Andreas Hindborg
2025-08-12 8:44 ` [PATCH v4 05/15] rust: block: normalize imports for `gen_disk.rs` Andreas Hindborg
2025-08-12 8:44 ` [PATCH v4 06/15] rust: block: use `NullTerminatedFormatter` Andreas Hindborg
2025-08-13 7:22 ` Alice Ryhl
2025-08-12 8:44 ` [PATCH v4 07/15] rust: block: remove `RawWriter` Andreas Hindborg
2025-08-12 8:44 ` [PATCH v4 08/15] rust: block: remove trait bound from `mq::Request` definition Andreas Hindborg
2025-08-12 8:44 ` [PATCH v4 09/15] rust: block: add block related constants Andreas Hindborg
2025-08-13 7:22 ` Alice Ryhl
2025-08-12 8:44 ` [PATCH v4 10/15] rnull: move driver to separate directory Andreas Hindborg
2025-08-12 8:44 ` [PATCH v4 11/15] rnull: enable configuration via `configfs` Andreas Hindborg
2025-08-13 7:27 ` Alice Ryhl
2025-08-13 12:47 ` Andreas Hindborg
2025-08-13 13:54 ` Alice Ryhl
2025-08-13 17:36 ` Andreas Hindborg
2025-08-13 18:05 ` Alice Ryhl
2025-08-14 7:40 ` Andreas Hindborg
2025-08-14 8:58 ` Alice Ryhl
2025-08-12 8:44 ` [PATCH v4 12/15] rust: block: add `GenDisk` private data support Andreas Hindborg
2025-08-13 7:30 ` Alice Ryhl
2025-08-13 12:56 ` Andreas Hindborg
2025-08-13 13:50 ` Alice Ryhl
2025-08-12 8:44 ` [PATCH v4 13/15] rust: block: mq: fix spelling in a safety comment Andreas Hindborg
2025-08-12 8:44 ` [PATCH v4 14/15] rust: block: add remote completion to `Request` Andreas Hindborg
2025-08-12 8:44 ` [PATCH v4 15/15] rnull: add soft-irq completion support Andreas Hindborg
2025-08-13 7:32 ` Alice Ryhl
2025-08-14 18:28 ` Andreas Hindborg
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=20250812-rnull-up-v6-16-v4-0-ed801dd3ba5c@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=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).