M2 NVME SSD is slower on boot but faster after a restart

i have no idea why this is happening.

When I boot my computer while it is powered off i try and run kdiskmark:

speedonboot

Meanwhile If I just restart the PC and run kdiskmark:
speedonrestart

then when I try to run
sudo hdparm -Tt /dev/nvme0n1
I get 800 mb/s when I boot from powered off and 1600 mb/s when I restart…

I don’t know what is going on.

I tried even disabling the sata controllers (i have no sata devices even connected) and it turns the same result. I tried setting the M2 slot to use PCIE 3.0 but nothing… I went back to default BIOS settings and same problems.

My SSD is a WD_BLACK SN750 NVME SSD it has 85% free space

CPU: i3-10320
GPU: GTX 960
MOBO: ASUS Prime B560M-A (latest bios version)

Provide full system info.
Help

System:
  Kernel: 5.10.42-1-MANJARO x86_64 bits: 64 compiler: gcc v: 11.1.0 
  Desktop: Xfce 4.16.0 Distro: Manjaro Linux base: Arch Linux 
Machine:
  Type: Desktop System: ASUS product: N/A v: N/A serial: <filter> 
  Mobo: ASUSTeK model: PRIME B560M-A v: Rev 1.xx serial: <filter> 
  UEFI: American Megatrends v: 0820 date: 04/27/2021 
Battery:
  Device-1: hidpp_battery_0 model: Logitech Wireless Solar Keyboard K750 
  charge: 100% status: Full 
  Device-2: hidpp_battery_1 model: Logitech Wireless Gaming Mouse 
  charge: 55% (should be ignored) status: Discharging 
CPU:
  Info: Quad Core model: Intel Core i3-10320 bits: 64 type: MT MCP 
  arch: Comet Lake rev: 3 cache: L2: 8 MiB 
  flags: avx avx2 lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 
  bogomips: 60819 
  Speed: 800 MHz min/max: 800/4600 MHz Core speeds (MHz): 1: 800 2: 800 
  3: 800 4: 800 5: 800 6: 800 7: 800 8: 800 
Graphics:
  Device-1: NVIDIA GM206 [GeForce GTX 960] vendor: eVga.com. driver: nvidia 
  v: 465.31 bus-ID: 01:00.0 
  Display: x11 server: X.Org 1.20.11 driver: loaded: nvidia resolution: 
  1: 1024x1280~60Hz 2: 1920x1080~60Hz 3: 1024x1280~60Hz 
  OpenGL: renderer: NVIDIA GeForce GTX 960/PCIe/SSE2 v: 4.6.0 NVIDIA 465.31 
  direct render: Yes 
Audio:
  Device-1: Intel vendor: ASUSTeK driver: snd_hda_intel v: kernel 
  bus-ID: 00:1f.3 
  Device-2: NVIDIA GM206 High Definition Audio vendor: eVga.com. 
  driver: snd_hda_intel v: kernel bus-ID: 01:00.1 
  Sound Server-1: ALSA v: k5.10.42-1-MANJARO running: yes 
  Sound Server-2: JACK v: 0.125.0 running: no 
  Sound Server-3: PulseAudio v: 14.2 running: yes 
  Sound Server-4: PipeWire v: 0.3.30 running: no 
Network:
  Device-1: Intel Ethernet I219-V vendor: ASUSTeK driver: e1000e v: kernel 
  port: efa0 bus-ID: 00:1f.6 
  IF: eno1 state: down mac: <filter> 
  Device-2: Intel Wireless 7265 driver: iwlwifi v: kernel port: 3000 
  bus-ID: 03:00.0 
  IF: wlp3s0 state: up mac: <filter> 
Bluetooth:
  Device-1: Intel Bluetooth wireless interface type: USB driver: btusb 
  v: 0.8 bus-ID: 1-8:2 
  Report: rfkill ID: hci0 rfk-id: 1 state: up address: see --recommends 
Drives:
  Local Storage: total: 465.76 GiB used: 43.22 GiB (9.3%) 
  ID-1: /dev/nvme0n1 vendor: Western Digital model: WDS500G3X0C-00SJG0 
  size: 465.76 GiB temp: 57.9 C 
Partition:
  ID-1: / size: 457.09 GiB used: 43.22 GiB (9.5%) fs: ext4 
  dev: /dev/nvme0n1p2 
  ID-2: /boot/efi size: 299.4 MiB used: 288 KiB (0.1%) fs: vfat 
  dev: /dev/nvme0n1p1 
Swap:
  Alert: No swap data was found. 
Sensors:
  System Temperatures: cpu: 27.8 C mobo: N/A gpu: nvidia temp: 60 C 
  Fan Speeds (RPM): N/A gpu: nvidia fan: 7% 
Info:
  Processes: 234 Uptime: 13m Memory: 15.49 GiB used: 1.84 GiB (11.9%) 
  Init: systemd Compilers: gcc: 11.1.0 Packages: 1129 Shell: Bash v: 5.1.8 
  inxi: 3.3.04

Give 5.12 kernel a try.

no change, kdiskmark and hdparm still gives the same readings
kernel512speed

System:
  Kernel: 5.12.9-1-MANJARO x86_64 bits: 64 compiler: gcc v: 11.1.0 
  Desktop: Xfce 4.16.0 Distro: Manjaro Linux base: Arch Linux 
Machine:
  Type: Desktop System: ASUS product: N/A v: N/A serial: <filter> 
  Mobo: ASUSTeK model: PRIME B560M-A v: Rev 1.xx serial: <filter> 
  UEFI: American Megatrends v: 0820 date: 04/27/2021 
Battery:
  Device-1: hidpp_battery_0 model: Logitech Wireless Solar Keyboard K750 
  charge: 100% status: Full 
CPU:
  Info: Quad Core model: Intel Core i3-10320 bits: 64 type: MT MCP 
  arch: Comet Lake rev: 3 cache: L2: 8 MiB 
  flags: avx avx2 lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 
  bogomips: 60819 
  Speed: 800 MHz min/max: 800/4600 MHz Core speeds (MHz): 1: 800 2: 800 
  3: 800 4: 800 5: 800 6: 800 7: 800 8: 800 
Graphics:
  Device-1: NVIDIA GM206 [GeForce GTX 960] vendor: eVga.com. driver: nvidia 
  v: 465.31 bus-ID: 01:00.0 
  Display: x11 server: X.Org 1.20.11 driver: loaded: nvidia resolution: 
  1: 1024x1280~60Hz 2: 1920x1080~60Hz 3: 1024x1280~60Hz 
  OpenGL: renderer: NVIDIA GeForce GTX 960/PCIe/SSE2 v: 4.6.0 NVIDIA 465.31 
  direct render: Yes 
Audio:
  Device-1: Intel vendor: ASUSTeK driver: snd_hda_intel v: kernel 
  bus-ID: 00:1f.3 
  Device-2: NVIDIA GM206 High Definition Audio vendor: eVga.com. 
  driver: snd_hda_intel v: kernel bus-ID: 01:00.1 
  Sound Server-1: ALSA v: k5.12.9-1-MANJARO running: yes 
  Sound Server-2: JACK v: 0.125.0 running: no 
  Sound Server-3: PulseAudio v: 14.2 running: yes 
  Sound Server-4: PipeWire v: 0.3.30 running: no 
Network:
  Device-1: Intel Ethernet I219-V vendor: ASUSTeK driver: e1000e v: kernel 
  port: efa0 bus-ID: 00:1f.6 
  IF: eno1 state: down mac: <filter> 
  Device-2: Intel Wireless 7265 driver: iwlwifi v: kernel port: 3000 
  bus-ID: 03:00.0 
  IF: wlp3s0 state: up mac: <filter> 
Bluetooth:
  Device-1: Intel Bluetooth wireless interface type: USB driver: btusb 
  v: 0.8 bus-ID: 1-8:2 
  Report: rfkill ID: hci0 rfk-id: 1 state: up address: see --recommends 
Drives:
  Local Storage: total: 465.76 GiB used: 43.56 GiB (9.4%) 
  ID-1: /dev/nvme0n1 vendor: Western Digital model: WDS500G3X0C-00SJG0 
  size: 465.76 GiB 
Partition:
  ID-1: / size: 457.09 GiB used: 43.56 GiB (9.5%) fs: ext4 
  dev: /dev/nvme0n1p2 
  ID-2: /boot/efi size: 299.4 MiB used: 288 KiB (0.1%) fs: vfat 
  dev: /dev/nvme0n1p1 
Swap:
  Alert: No swap data was found. 
Sensors:
  System Temperatures: cpu: 51.0 C mobo: N/A gpu: nvidia temp: 54 C 
  Fan Speeds (RPM): N/A gpu: nvidia fan: 0% 
Info:
  Processes: 285 Uptime: N/A Memory: 15.49 GiB used: 930.7 MiB (5.9%) 
  Init: systemd Compilers: gcc: 11.1.0 Packages: 1131 Shell: Bash v: 5.1.8 
  inxi: 3.3.04

You might want to rectify your thread on Tom’s Hardware too…

$ dd if=/dev/zero of=tempfile2 bs=4M count=3072 conv=fdatasync,notrunc status=progress
12004098048 bytes (12 GB, 11 GiB) copied, 12 s, 1000 MB/s
3072+0 records in
3072+0 records out
12884901888 bytes (13 GB, 12 GiB) copied, 15.7777 s, 817 MB/s

$ dd if=tempfile2 of=/dev/null bs=4M count=4096 status=progress
3072+0 records in
3072+0 records out
12884901888 bytes (13 GB, 12 GiB) copied, 0.921564 s, 14.0 GB/s

tried changing bios settings and it seems if i cold boot and then enter bios first, the PCIE speed is normal (3200 mb/s)

so i tried changing bios settings and tested what the speed will be if I set the PCIE slot to work in PCIE 1.0 the speed is 800 mb/s (same as coldboot speed) and if i try PCIE 2.0 it is 1600 mb/s and then PCIE 3.0 or auto gives me 3200 mb/s.

So whenever I coldboot and don’t enter bios the speed is always 800 mb/s ( PCIE 1.0 speed), so i believe my M2 slot is only being used as PCIE 1.0 on coldboot. The only fix is to enter the bios first or do a restart. Any ideas guys?

There’s no “coldboot” bios is the same always. But why bother tho? Do you need access large files right away? Do you notice bad performace (and where)?

Because he paid for hardware with XX characteristics, and want to have full potential of his hardware? Just my guess but the question is weird. He noticed an issue, and is looking to understand/fix it.

I was thinking about something like that but your other thread on Tom’s Hardware you said you went to BIOS and it was up to date and so on so I guessed you already checked that (//EDIT: it was in your first post here that you even said you set PCIe to gen3 actually). Also the Intel boards have Intel ME, are you up to date for that shit? Not sure how you update that, I guess you need to boot to Windows… (//EDIT: probably Windows PE is enough, it is free I think, or Hiren BootCD, things like that).

Asked him that, where did he notice that “issue”.

yup bios is up to date and I guess I will have to go to windows to update the intel ME driver and try and install a firmware update on the ssd, sucks because I don’t have another drive to copy manjaro but at least I don’t have too much important stuff, just package configs I will have to set again

going to see if I can do it with a windows live USB first I found

I think any Windows live could work. WINDOWS, not Linux. I don’t know how you can update from Linux the Intel ME firmware.

Maybe that if you trust it (apparently it is known to be safe). Never used.