Skip to content

Commit 0917a46

Browse files
authored
Merge pull request #53 from metaspace/rnull-december-2025
rnull: add benchmark results for v6.16, v6.17, v6.18
2 parents 9ee632a + 84f3122 commit 0917a46

File tree

7 files changed

+185342
-5
lines changed

7 files changed

+185342
-5
lines changed

src/Null-Block-Driver.md

Lines changed: 105 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -51,19 +51,19 @@ Implemented features:
5151
- Dynamic device creation/destruction
5252
- Queue count configuration
5353
- Per node hctx
54-
55-
Features available in the C `null_blk` driver that are currently not implemented
56-
in this work:
57-
5854
- Queue depth configuration
5955
- Discard operation support
6056
- Cache emulation
6157
- Bandwidth throttling
6258
- IO scheduler configuration
6359
- Blocking submission mode
6460
- Shared tags configuration (for >1 device)
65-
- Zoned storage support
6661
- Bad block simulation
62+
63+
Features available in the C `null_blk` driver that are currently not implemented
64+
in this work:
65+
66+
- Zoned storage support
6767
- Poll queues
6868

6969
## Resources
@@ -73,6 +73,106 @@ in this work:
7373
- [Mailing List Post](https://lore.kernel.org/all/[email protected]/)
7474
- [Subset merged in v6.11-rc1](https://lore.kernel.org/all/[email protected]/)
7575

76+
## 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))
77+
78+
Changes from `rnull-v6.17.7`:
79+
80+
- Add bandwidth throttling
81+
- Add blocking queue mode
82+
- Add shared tags support
83+
- Add queue depth configuration option
84+
85+
### Performance
86+
87+
#### Setup
88+
89+
- AMD Ryzen 5 7600
90+
- 32 GB 4800 MT/s DDR5 on one channel
91+
- 1x Samsung 990 Pro 1TB (PCIe 4.0 x4 16 GT/S)
92+
- NixOS 24.11
93+
94+
#### Results
95+
96+
- Plot shows `(mean_iops_r - mean_iops_c) / mean_iops_c`
97+
- 40 samples for each configuration
98+
- Difference of means modeled with t-distribution
99+
- P95 confidence intervals
100+
101+
![](rnull/rnull-v6.18-rc5.svg)
102+
103+
##### Sample Distribution
104+
105+
- C left bounded by blue line.
106+
- Rust right bounded by orange line.
107+
108+
![](rnull/rnull-v6.18-rc5-density.svg)
109+
110+
## 6.17 Rebase ([`rnull-v6.17.7`](https://git.kernel.org/pub/scm/linux/kernel/git/a.hindborg/linux.git/log/?h=rnull-v6.17.7))
111+
112+
Changes from `rnull-v6.16`:
113+
114+
- Add discard support
115+
- Add no_sched support
116+
- Add badblocks emulation
117+
- Add volatile cache emulation
118+
119+
### Performance
120+
121+
#### Setup
122+
123+
- AMD Ryzen 5 7600
124+
- 32 GB 4800 MT/s DDR5 on one channel
125+
- 1x Samsung 990 Pro 1TB (PCIe 4.0 x4 16 GT/S)
126+
- NixOS 24.11
127+
128+
#### Results
129+
130+
- Plot shows `(mean_iops_r - mean_iops_c) / mean_iops_c`
131+
- 40 samples for each configuration
132+
- Difference of means modeled with t-distribution
133+
- P95 confidence intervals
134+
135+
![](rnull/rnull-v6.17.7.svg)
136+
137+
##### Sample Distribution
138+
139+
- C left bounded by blue line.
140+
- Rust right bounded by orange line.
141+
142+
![](rnull/rnull-v6.17.7-density.svg)
143+
144+
## 6.16 Rebase ([`rnull-v6.16`](https://git.kernel.org/pub/scm/linux/kernel/git/a.hindborg/linux.git/log/?h=rnull-v6.16))
145+
146+
Changes from `rnull-v6.15`:
147+
148+
- No changes
149+
150+
### Performance
151+
152+
#### Setup
153+
154+
- AMD Ryzen 5 7600
155+
- 32 GB 4800 MT/s DDR5 on one channel
156+
- 1x Samsung 990 Pro 1TB (PCIe 4.0 x4 16 GT/S)
157+
- NixOS 24.11
158+
159+
#### Results
160+
161+
- Plot shows `(mean_iops_r - mean_iops_c) / mean_iops_c`
162+
- 40 samples for each configuration
163+
- Difference of means modeled with t-distribution
164+
- P95 confidence intervals
165+
166+
![](rnull/rnull-v6.16.svg)
167+
168+
169+
##### Sample Distribution
170+
171+
- C left bounded by blue line.
172+
- Rust right bounded by orange line.
173+
174+
![](rnull/rnull-v6.16-density.svg)
175+
76176
## 6.15 Rebase ([`rnull-v6.15`](https://git.kernel.org/pub/scm/linux/kernel/git/a.hindborg/linux.git/log/?h=rnull-v6.15))
77177

78178
Changes from `rnull-v6.14`:

0 commit comments

Comments
 (0)