Confirmed Working NVME Drives

No worries. At least now we know to avoid the XPG SX8200 Pro 1TB.
Yeah, I was a bit hesitant with the Blue. But I figured that the bottleneck will be the interface to the Reform. And that will allow it to keep up with the read/writes without any DRAM cache.

I tested to increase the sample size to 20M and the result was about the same. Maybe I should gone higher, but I don’t want to put too much unnecessary wear on it.

I agree that those writes looks a bit suspicious, given that it should be able to read faster than writing. If the data sheet is to be trusted (2400MB/s read, 1950MB/s write). But both are way above the speed that the one PCIe lane can handle. Like you said the limiting factor will be the one PCIe lane.

Now you have me thinking, I looked at the chip datasheet and it has 2x PCIe 2.0 interfaces, so with the one lane there should be a bandwidth of 500MB/s So the write speed isn’t out of the realm of possible.

Though now I’m wondering what the bottleneck is that most NVMe drives we have are getting <300MB/s. Wondering if it’s just the controllers in most drives being unhappy with a single 2.0 lane, a limitation of the SoC, or perhaps a kernel issue?

My drive should be capable of 3500MB/s reads on 4x 3.0 (3.94 GB/s max), it should have no trouble saturating a 2.0 link.

I bought a 1TB SK Hynix Gold P31, which is one of the drives recommended by Wirecutter. It seems to be working fine after a couple days. I’m seeing similar numbers to what others have posted: ~300 MB/s reads and ~380 MB/s writes.

It’s currently unencrypted, but I’m thinking about reformatting it and encrypting with LUKS. Does anyone know if there’s a significant performance impact using LUKS on the Reform?

1 Like

Can confirm that WD Blue SN550 500gb works here.

1 Like

Another working WD Blue SN550 - this time 2TB. Like in “Big NVMe…” thread, I intend to use it for copy of my data - and for experimenting with various OS.

1 Like

Hey everyone - I’d be happy to try out a few of my nvme drives to add to the list, but simply saying that a drive officially “works” or not is a little subjective. What testing procedures can we agree on? Are we talking something relatively scientific where we write/read sequential/random blocks and record performance, checking that it passes CRC and exceeds some threshold of performance, or do we say “I saved a copy of The Matrix on the drive and was able to play it back?” If we’re preferring the former option, is there a script or an existing benchmarking tool we can all agree to use? Perhaps just verify lspci and lsblk output and, if all good, run a gnome-disks benchmark as mentioned earlier in this thread?


I’m all for more scientific than subjective. fio is a good tool for testing performance. Ars Technica has a good article on how to use it: here. It might be a bit overkill, so gnome-disks benchmark could be good enough.

At least lspci and lsblk should be the first criteria to check.

“I saved a copy of The Matrix on the dirve and was able to play it back” is hard to reproduce :slight_smile:

1 Like

My 2 cents: I personally used the gnome-disks benchmark to determine the best I/O perf vs price ratio when selecting the 32GB MicroSD cards that ship with Reform. The graphs were pretty useful to see differences in buffering etc.

I bought a 500 GB Kingston A2000, it’s working.
Reads are about 280 MB/s and write are about 220 MB/s according to a quick Gnome Disks benchmark.

1 Like

I’m using a Seagate BarraCuda 1 TB drive with no problems. With encryption turned on, hdparm reports a read speed of 172 MB/sec. gnome-disks reports 292.5 MB/s read, 333.7 MB/s write on the disk itself (which by my understanding should be the unencrypted speed).

1 Like

Booted off the SD card that shipped with my DIY unit, I fired up gnome-disks and benchmarked my 1TB Intel 670p (Intel SSD 670p SSDPEKNU010TZ SSD Benchmarks - Tech for other benches of this model) with all default settings. This is the first access to the drive in any form.

Avg Read Rate: 280.09MB/s
Avg Write Rate: 291.2MB/s
Avg Access Time: 0.07 msec

WD Black SN850 500GB, haven’t been able to run gnome-disks write benchmark as ZFS reserves the device, blocking the benchmark. r/o test was just over 300MB/s.

smartctl 7.3 2022-02-28 r5338 [aarch64-linux-5.19.0-reform2-arm64] (local build)
Copyright (C) 2002-22, Bruce Allen, Christian Franke,

Model Number:                       WDS500G1X0E-00AFY0
Serial Number:                        redacted
Firmware Version:                   611100WD
PCI Vendor/Subsystem ID:            0x15b7
IEEE OUI Identifier:                0x001b44
Total NVM Capacity:                 500,107,862,016 [500 GB]
Unallocated NVM Capacity:           0
Controller ID:                      8224
NVMe Version:                       1.4
Number of Namespaces:               1
Namespace 1 Size/Capacity:          500,107,862,016 [500 GB]
Namespace 1 Formatted LBA Size:     512
Namespace 1 IEEE EUI-64:            001b44 4a46e002ff
Local Time is:                      Tue Sep  6 19:09:47 2022 BST
Firmware Updates (0x14):            2 Slots, no Reset required
Optional Admin Commands (0x0017):   Security Format Frmw_DL Self_Test
Optional NVM Commands (0x005f):     Comp Wr_Unc DS_Mngmt Wr_Zero Sav/Sel_Feat Timestmp
Log Page Attributes (0x1e):         Cmd_Eff_Lg Ext_Get_Lg Telmtry_Lg Pers_Ev_Lg
Maximum Data Transfer Size:         128 Pages
Warning  Comp. Temp. Threshold:     84 Celsius
Critical Comp. Temp. Threshold:     88 Celsius
Namespace 1 Features (0x02):        NA_Fields

Supported Power States
St Op     Max   Active     Idle   RL RT WL WT  Ent_Lat  Ex_Lat
 0 +     9.00W    9.00W       -    0  0  0  0        0       0
 1 +     4.10W    4.10W       -    0  0  0  0        0       0
 2 +     3.50W    3.50W       -    0  0  0  0        0       0
 3 -   0.0250W       -        -    3  3  3  3     5000   10000
 4 -   0.0050W       -        -    4  4  4  4     5000   45000

Supported LBA Sizes (NSID 0x1)
Id Fmt  Data  Metadt  Rel_Perf
 0 +     512       0         2
 1 -    4096       0         1

SMART overall-health self-assessment test result: PASSED

SMART/Health Information (NVMe Log 0x02)
Critical Warning:                   0x00
Temperature:                        56 Celsius
Available Spare:                    100%
Available Spare Threshold:          10%
Percentage Used:                    0%
Data Units Read:                    364 [186 MB]
Data Units Written:                 30 [15.3 MB]
Host Read Commands:                 8,324
Host Write Commands:                840
Controller Busy Time:               0
Power Cycles:                       8
Power On Hours:                     3
Unsafe Shutdowns:                   5
Media and Data Integrity Errors:    0
Error Information Log Entries:      0
Warning  Comp. Temperature Time:    0
Critical Comp. Temperature Time:    0

Error Information (NVMe Log 0x01, 16 of 256 entries)
No Errors Logged

I picked up a WD Blue SN570 1TB drive for my Reform. Right now I’d advise to steer clear of this one - The drive works fine otherwise, but never comes back up when resuming from suspend:

nvme 0001:01:00.0: Unable to change power state from D3hot to D0, device inaccessible

Similarly, I would advise avoiding the Intel 600P 256GB. Mine is running the 100C variant firmware, and it was constantly freezing while in use.

I’d advise steering away from wd green as well, had a SATA one, it had no cache so performance was awful and it started silently corrupting data 3 days after the warranty expired. sector tests throw billions of errors. it’s completely knackered.

I see the same problem with a WD Blue SN550 1TB drive:

[ 3560.442616] nvme nvme0: I/O 26 QID 0 timeout, disable controller
[ 3560.478661] nvme nvme0: Identify Controller failed (-4)
[ 3560.483940] nvme nvme0: Removing after probe failure status: -5
[ 3560.518587] nvme0n1: detected capacity change from 1953525168 to 0
[ 3560.518671] EXT4-fs warning (device dm-2): ext4_end_bio:343: I/O error 10 writing to inode 53477388 starting block 4097144)
[ 3560.535988] EXT4-fs warning (device dm-2): ext4_end_bio:343: I/O error 10 writing to inode 9964422 starting block 39878656)
[ 3560.536046] Buffer I/O error on device dm-2, logical block 4097144

I have similar problems with resume from suspend with a “Kingston NV2 NVMe SSD, 1 TB, M.2 PCIe”. After resuming from suspend with a vanilla sysimage-v3 copied from the SD-Card onto NVMe with reform-setup-encrypted-nvme and kernel 5.19 I get:

[  807.925640] nvme nvme0: I/O 20 QID 0 timeout, disable controller
[  808.069698] nvme nvme0: Identify Controller failed (-4)
[  808.074998] nvme nvme0: Removing after probe failure status: -5
[  808.101611] nvme0n1: detected capacity change from 1953525168 to 0
[  808.101648] EXT4-fs error (device dm-2): __ext4_get_inode_loc_noinmem:4587: inode #14417921: block 57671712: comm ls: unable to read itable block
[  808.101742] EXT4-fs warning (device dm-2): ext4_end_bio:343: I/O error 10 writing to inode 1573071 starting block 4164608)
[  808.101760] Buffer I/O error on device dm-2, logical block 4164608

You may need to disregard my last two posts. I now tested a 1 TB Transcend MTE220S with my reform which is the same drive that comes with the DIY kit and is confirmed working with suspend by Lukas. The drive doesn’t work for me when resuming for suspend. This might mean that something else in my unit is broken and that the drives I had problems with before are actually fine.

Samsung P/N MZVLB256HAHQ-000L7 pulled from a ThinkPad X1 Yoga 3rd Gen was not recognized by the Reform at all. Simply did not show up as being installed.

I’ve bought the P3 a few days ago and have been running it since then. I did not notice any problems so far.

I’ve been using a Phison ESMP512GKB4C3 salvaged from a Steam Deck that got upgraded. It works fine. :slight_smile: