@@ -7,10 +7,11 @@ implementation language for high performance device drivers.
77
88
99The Linux Rust NVMe driver lives
10- [ here] ( https://github.com/metaspace/linux/tree/rnvme ) . This branch is routinely
11- rebased on upstream Linux releases. Please be aware that the ` nvme ` branch is
12- force pushed without notice. The version based on the deprecated ` rust ` branch
13- is available [ here] ( https://github.com/metaspace/linux/tree/nvme-rust ) .
10+ [ here] ( https://git.kernel.org/pub/scm/linux/kernel/git/a.hindborg/linux.git/log/?h=rnvme ) .
11+ This branch is routinely rebased on upstream Linux releases. Please be aware
12+ that the ` nvme ` branch is force pushed without notice. The version based on the
13+ deprecated ` rust ` branch is available
14+ [ here] ( https://github.com/metaspace/linux/tree/nvme-rust ) .
1415
1516The Rust NVMe driver was originally
1617authored by Wedson Almeida Filho and is now maintained by Andreas Hindborg
@@ -23,6 +24,76 @@ The driver is not currently suitable for general use.
2324 [ slides] ( https://lpc.events/event/16/contributions/1180/attachments/1017/1961/deck.pdf )
2425 and [ video] ( https://lpc.events/event/16/contributions/1180/attachments/1017/2249/go )
2526
27+ ## 6.11-rc2 Rebase Performance ([ ` rnvme-v6.11-rc2 ` ] ( https://git.kernel.org/pub/scm/linux/kernel/git/a.hindborg/linux.git/log/?h=rnvme-v6.11-rc2 ) )
28+
29+ ### Setup
30+
31+ - AMD Ryzen 5 7600
32+ - 32 GB 4800 MT/s DDR5 on one channel
33+ - 1x Samsung 990 Pro 1TB (PCIe 4.0 x4 16 GT/S)
34+ - NixOS 24.05
35+
36+ ### Results
37+
38+ - 40 samples
39+ - Difference of means modeled with t-distribution
40+ - P95 confidence intervals
41+
42+ ![ ] ( rnvme/nvme-v6.11-rc2-absolute.svg )
43+
44+ ![ ] ( rnvme/nvme-v6.11-rc2-relative.svg )
45+
46+ The graph shows
47+ <math >
48+ <mfrac >
49+ <mrow >
50+ <mi >R</mi >
51+ <mo >-</mo >
52+ <mi >C</mi >
53+ </mrow >
54+ <mrow >
55+ <mi >C</mi >
56+ </mrow >
57+ </mfrac >
58+ </math >
59+ where C is IO/s for the C driver and R is IO/s for the Rust driver. Thus, negative
60+ means the C driver is faster while positive means the Rust driver is faster.
61+
62+ ## 6.10 Rebase Performance ([ ` rnvme-v6.10 ` ] ( https://git.kernel.org/pub/scm/linux/kernel/git/a.hindborg/linux.git/log/?h=rnvme-v6.10 ) )
63+
64+ ### Setup
65+
66+ - AMD Ryzen 5 7600
67+ - 32 GB 4800 MT/s DDR5 on one channel
68+ - 1x Samsung 990 Pro 1TB (PCIe 4.0 x4 16 GT/S)
69+ - NixOS 24.05
70+
71+ ### Results
72+
73+ - 40 samples
74+ - Difference of means modeled with t-distribution
75+ - P95 confidence intervals
76+
77+ ![ ] ( rnvme/nvme-v6.10-absolute.svg )
78+
79+ ![ ] ( rnvme/nvme-v6.10-relative.svg )
80+
81+ The graph shows
82+ <math >
83+ <mfrac >
84+ <mrow >
85+ <mi >R</mi >
86+ <mo >-</mo >
87+ <mi >C</mi >
88+ </mrow >
89+ <mrow >
90+ <mi >C</mi >
91+ </mrow >
92+ </mfrac >
93+ </math >
94+ where C is IO/s for the C driver and R is IO/s for the Rust driver. Thus, negative
95+ means the C driver is faster while positive means the Rust driver is faster.
96+
2697## 6.10-rc5 Rebase Performance ([ ` rnvme-v6.10-rc5 ` ] ( https://github.com/metaspace/linux/tree/rnvme-v6.10-rc5 ) )
2798
2899### Setup
@@ -197,8 +268,8 @@ PR for 6.6 in September 2023.
197268
198269### Results
199270
200- ![ iops-512] ( ./nvme-512.svg )
201- ![ iops-all] ( ./nvme-all.svg )
271+ ![ iops-512] ( ./rnvme/ nvme-512-sep23 .svg )
272+ ![ iops-all] ( ./rnvme/ nvme-all-sep23 .svg )
202273
203274## Performance January 2023
204275
@@ -214,8 +285,8 @@ Performance evaluation as of January 2023.
214285
215286### Results
216287
217- ![ iops] ( ./iops.svg )
218- ![ relative] ( ./relative.svg )
288+ ![ iops] ( ./rnvme/ iops-jan23 .svg )
289+ ![ relative] ( ./rnvme/ relative-jan23 .svg )
219290
220291### Analysis
221292
0 commit comments