5–7 Oct 2026
Europe/Prague timezone

Reworking `Request` reference counting in the Rust block device driver API

7 Oct 2026, 10:20
20m
"Club E" (Prague Congress Centre)

"Club E"

Prague Congress Centre

128
Rust MC Rust MC

Speaker

Mr Andreas Hindborg (Samsung)

Description

The kernel::block::mq::Request type [1] sits on the I/O hot path of every Rust block device driver. A Request is jointly referenced by the block layer and the driver, with completion arriving on multiple asynchronous paths, so the type has to encode a non-trivial sharing and lifecycle model with minimal runtime cost.

The introduction of Ownable [2] gave us a general mechanism for types that oscillate between owned and reference-counted forms, and applying it to Request cleaned up parts of the API [3]. However, the resulting scheme remains hard to reason about for reviewers [4]. We would like to use an LPC session to walk through the proposed changes with the wider Rust-for-Linux audience to further the review process.

To anchor the discussion, we plan to bring the following content to the session:

  • A walk-through of the reworked reference counting scheme.
  • Benchmark results from rnull that quantify the cost of the scheme on representative I/O workloads.

The goal of the session is to surface concerns from the community, iron out pain points in the API shape, and build shared understanding of why the scheme looks the way it does — so that when the next version hits the list, the basic design is already broadly understood and accepted.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/rust/kernel/block/mq/request.rs?h=v7.1-rc5#n24
[2] https://lore.kernel.org/r/20260224-unique-ref-v16-0-c21afcb118d3@kernel.org
[3] https://lore.kernel.org/r/20260216-rnull-v6-19-rc5-send-v1-5-de9a7af4b469@kernel.org
[4] https://lore.kernel.org/r/87qzopwttw.fsf@kernel.org

Author

Mr Andreas Hindborg (Samsung)

Presentation materials

There are no materials yet.