@@ -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
78178Changes from ` rnull-v6.14 ` :
0 commit comments