@@ -7,10 +7,11 @@ implementation language for high performance device drivers.
7
7
8
8
9
9
The 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 ) .
14
15
15
16
The Rust NVMe driver was originally
16
17
authored by Wedson Almeida Filho and is now maintained by Andreas Hindborg
@@ -23,6 +24,76 @@ The driver is not currently suitable for general use.
23
24
[ slides] ( https://lpc.events/event/16/contributions/1180/attachments/1017/1961/deck.pdf )
24
25
and [ video] ( https://lpc.events/event/16/contributions/1180/attachments/1017/2249/go )
25
26
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
+
26
97
## 6.10-rc5 Rebase Performance ([ ` rnvme-v6.10-rc5 ` ] ( https://github.com/metaspace/linux/tree/rnvme-v6.10-rc5 ) )
27
98
28
99
### Setup
@@ -197,8 +268,8 @@ PR for 6.6 in September 2023.
197
268
198
269
### Results
199
270
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 )
202
273
203
274
## Performance January 2023
204
275
@@ -214,8 +285,8 @@ Performance evaluation as of January 2023.
214
285
215
286
### Results
216
287
217
- ![ iops] ( ./iops.svg )
218
- ![ relative] ( ./relative.svg )
288
+ ![ iops] ( ./rnvme/ iops-jan23 .svg )
289
+ ![ relative] ( ./rnvme/ relative-jan23 .svg )
219
290
220
291
### Analysis
221
292
0 commit comments