Skip to content

Commit 3546762

Browse files
maltewechterAndreas Hindborg
authored andcommitted
rnull: add benchmark results for v6.19-rc5
Signed-off-by: Malte Wechter <maltewechter@gmail.com> Acked-by: Andreas Hindborg <a.hindborg@kernel.org> Signed-off-by: Andreas Hindborg <a.hindborg@kernel.org>
1 parent cb1de5a commit 3546762

3 files changed

Lines changed: 62111 additions & 4 deletions

File tree

src/Null-Block-Driver.md

Lines changed: 42 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@ monitoring the situation going forward.
3636

3737
## Features
3838

39+
The Rust null block driver has feature parity with the C null block driver.
40+
3941
Implemented features:
4042

4143
- `blk-mq` support
@@ -59,20 +61,56 @@ Implemented features:
5961
- Blocking submission mode
6062
- Shared tags configuration (for >1 device)
6163
- Bad block simulation
62-
63-
Features available in the C `null_blk` driver that are currently not implemented
64-
in this work:
65-
6664
- Zoned storage support
6765
- Poll queues
6866

67+
6968
## Resources
7069

7170
- [Latest patches](https://git.kernel.org/pub/scm/linux/kernel/git/a.hindborg/linux.git/log/?h=rnull)
7271
- [Original RFC Patches](https://github.com/metaspace/linux/tree/null_block-RFC)
7372
- [Mailing List Post](https://lore.kernel.org/all/20230503090708.2524310-1-nmi@metaspace.dk/)
7473
- [Subset merged in v6.11-rc1](https://lore.kernel.org/all/20240611114551.228679-1-nmi@metaspace.dk/)
7574

75+
76+
## 6.19-rc5, Rebase ([`rnull-v6.19-rc5`](https://git.kernel.org/pub/scm/linux/kernel/git/a.hindborg/linux.git/log/?h=rnull-v6.19-rc5))
77+
78+
Changes from `rnull-v6.18`:
79+
- Add global tag set support.
80+
- Add fault-injection support.
81+
- Add zoned device emulation.
82+
- Add poll queue support.
83+
- Add `REQ_OP_FLUSH` handling.
84+
- Add FUA support.
85+
- Add support for dynamic queue configuration.
86+
- Add `queue_rqs` support for batch request queuing.
87+
- Add max IO size configuration.
88+
- Add virt_boundary option.
89+
- Add shared_tag_bitmap` option.### Performance
90+
91+
#### Setup
92+
93+
- AMD Ryzen 5 7600
94+
- 32 GB 4800 MT/s DDR5 on one channel
95+
- 1x Samsung 990 Pro 1TB (PCIe 4.0 x4 16 GT/S)
96+
- NixOS 24.11
97+
98+
#### Results
99+
100+
- Plot shows `(mean_iops_r - mean_iops_c) / mean_iops_c`
101+
- 40 samples for each configuration
102+
- Difference of means modeled with t-distribution
103+
- P95 confidence intervals
104+
105+
![](rnull/rnull-v6.19-rc5.svg)
106+
107+
##### Sample Distribution
108+
109+
- C left bounded by blue line.
110+
- Rust right bounded by orange line.
111+
112+
![](rnull/rnull-v6.19-rc5-density.svg)
113+
76114
## 6.18-rc5, Rebase ([`rnull-v6.18-rc5`](https://git.kernel.org/pub/scm/linux/kernel/git/a.hindborg/linux.git/log/?h=rnull-v6.18-rc5))
77115

78116
Changes from `rnull-v6.17.7`:

0 commit comments

Comments
 (0)