rust-for-linux.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v5 00/18] rnull: add configfs, remote completion to rnull
@ 2025-08-15  7:30 Andreas Hindborg
  2025-08-15  7:30 ` [PATCH v5 01/18] rust: str: normalize imports in `str.rs` Andreas Hindborg
                   ` (17 more replies)
  0 siblings, 18 replies; 34+ messages in thread
From: Andreas Hindborg @ 2025-08-15  7:30 UTC (permalink / raw)
  To: Boqun Feng, Miguel Ojeda, Alex Gaynor, Gary Guo,
	Björn Roy Baron, Benno Lossin, Alice Ryhl, Trevor Gross,
	Danilo Krummrich, Jens Axboe, Breno Leitao
  Cc: linux-block, rust-for-linux, linux-kernel, Andreas Hindborg,
	Daniel Almeida

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 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 (18):
      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: str: add `bytes_to_bool` helper 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       | 105 +++++++++++++++
 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                 | 151 +++++++++++++++++++--
 samples/rust/rust_configfs.rs      |   2 +-
 17 files changed, 664 insertions(+), 192 deletions(-)
---
base-commit: 8f5ae30d69d7543eee0d70083daf4de8fe15d585
change-id: 20250616-rnull-up-v6-16-b4571e28feee

Best regards,
-- 
Andreas Hindborg <a.hindborg@kernel.org>



^ permalink raw reply	[flat|nested] 34+ messages in thread

end of thread, other threads:[~2025-09-01  8:26 UTC | newest]

Thread overview: 34+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-15  7:30 [PATCH v5 00/18] rnull: add configfs, remote completion to rnull Andreas Hindborg
2025-08-15  7:30 ` [PATCH v5 01/18] rust: str: normalize imports in `str.rs` Andreas Hindborg
2025-08-15  7:30 ` [PATCH v5 02/18] rust: str: allow `str::Formatter` to format into `&mut [u8]` Andreas Hindborg
2025-08-27 12:48   ` Daniel Almeida
2025-08-29 11:18     ` Andreas Hindborg
2025-08-29 18:27       ` Konstantin Ryabitsev
2025-09-01  7:58         ` Andreas Hindborg
2025-08-15  7:30 ` [PATCH v5 03/18] rust: str: expose `str::{Formatter, RawFormatter}` publicly Andreas Hindborg
2025-08-15  7:30 ` [PATCH v5 04/18] rust: str: introduce `NullTerminatedFormatter` Andreas Hindborg
2025-08-15  7:30 ` [PATCH v5 05/18] rust: str: introduce `kstrtobool` function Andreas Hindborg
2025-08-15  7:57   ` Alice Ryhl
2025-08-15  8:21     ` Andreas Hindborg
2025-08-15  7:30 ` [PATCH v5 06/18] rust: str: add `bytes_to_bool` helper function Andreas Hindborg
2025-08-15  8:12   ` Alice Ryhl
2025-08-15  8:28     ` Andreas Hindborg
2025-08-15  7:30 ` [PATCH v5 07/18] rust: configfs: re-export `configfs_attrs` from `configfs` module Andreas Hindborg
2025-08-15  8:13   ` Alice Ryhl
2025-08-15  8:29     ` Andreas Hindborg
2025-08-15  7:30 ` [PATCH v5 08/18] rust: block: normalize imports for `gen_disk.rs` Andreas Hindborg
2025-08-15  7:30 ` [PATCH v5 09/18] rust: block: use `NullTerminatedFormatter` Andreas Hindborg
2025-08-15  7:30 ` [PATCH v5 10/18] rust: block: remove `RawWriter` Andreas Hindborg
2025-08-15  7:30 ` [PATCH v5 11/18] rust: block: remove trait bound from `mq::Request` definition Andreas Hindborg
2025-08-15  7:30 ` [PATCH v5 12/18] rust: block: add block related constants Andreas Hindborg
2025-08-15  7:30 ` [PATCH v5 13/18] rnull: move driver to separate directory Andreas Hindborg
2025-08-15  7:30 ` [PATCH v5 14/18] rnull: enable configuration via `configfs` Andreas Hindborg
2025-08-15  8:17   ` Alice Ryhl
2025-08-15  9:04     ` Andreas Hindborg
2025-08-15  7:30 ` [PATCH v5 15/18] rust: block: add `GenDisk` private data support Andreas Hindborg
2025-08-15  8:18   ` Alice Ryhl
2025-08-15  9:08     ` Andreas Hindborg
2025-08-15  7:30 ` [PATCH v5 16/18] rust: block: mq: fix spelling in a safety comment Andreas Hindborg
2025-08-15  7:30 ` [PATCH v5 17/18] rust: block: add remote completion to `Request` Andreas Hindborg
2025-08-15  7:30 ` [PATCH v5 18/18] rnull: add soft-irq completion support Andreas Hindborg
2025-08-15  8:21   ` Alice Ryhl

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).