Significantly higher PCIe (NVMe) bandwidth when performing a CPU intensive task

I had left gnome-disks performing a long SSD benchmark and noticed it when apt autocomplete would spike the real time bandwidth graph from ~180 MB/s to ~280 MB/s. Spamming Tab for autocomplete would have an immediate feedback on the graph.

I figured that obviously the same thing happened with all CPU intensive tasks, below are two screenshots where you can see the difference when running a stress test on one core for the duration of the SSD benchmark.

Could this be caused by some SoC clock source used by the core frequency affecting the PCIe performance?

There were reports where using a high power 12v USB-PD power supply would increase ssd bandwidth from 180 to 300 MB/s but here I was using a simple 5.1v 3A power supply (official Raspberry PI USB-C supply).

6 Likes

Mhm, I dunno, I get constant 280MB/s even if I have cpufreq set to “ondemand”. Tbh, I always have 280MB/s. But yeah, it can dip to 220MB/s and become unstable if my 5V rail browns out (if NVMe is initialized at all).

4 Likes

I will have to test this behavior with JMB585 and ASM1166 (M.2 PCIe-to-SATA controllers). If it reaches 250MB/s, I can saturate the two Gbit LAN interfaces.

1 Like

I can now confirm that at least on my semi-current (one month old) 5.15.x kernel NVMe stability is strongly related to 5V rail stability. Once 5V voltage went down to 4.7V, NVMe dropped out and system froze in spitting out nvme errors then panicked. But it never happens with 12V capable USB-C charger.

HTH

5 Likes

I can second that by experience with two different VF2/SSD/Power supply combinations.
Stable and capable power supply is a must for NVMe SSDs.

1 Like