-
-
Save nissel/48ac68a245c4f3e80ff2257f869ac8f6 to your computer and use it in GitHub Desktop.
Windows Registry Editor Version 5.00 | |
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\StorPort] | |
"HMBAllocationPolicy"=dword:00000002 | |
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\stornvme\Parameters\Device] | |
"HostMemoryBufferBytes"=hex(7):56,00,45,00,4e,00,5f,00,31,00,35,00,42,00,37,00,\ | |
26,00,44,00,45,00,56,00,5f,00,35,00,30,00,31,00,37,00,26,00,52,00,45,00,56,\ | |
00,5f,00,3f,00,3f,00,20,00,36,00,37,00,31,00,30,00,38,00,38,00,36,00,34,00,\ | |
00,00,56,00,45,00,4e,00,5f,00,31,00,35,00,42,00,37,00,26,00,44,00,45,00,56,\ | |
00,5f,00,35,00,30,00,34,00,31,00,26,00,52,00,45,00,56,00,5f,00,3f,00,3f,00,\ | |
20,00,36,00,37,00,31,00,30,00,38,00,38,00,36,00,34,00,00,00,00,00 |
I use the WD 2 TB (NVMe____WD_Blue_SN580_2T4) device as replikation targret on Hyper-V. After Windows report a cotroller error and IO problem it switches the storage of, to prevent further damage. After reboot the drive worked normal for several hours.
I testet before dword "0", it was stable for ca. 2 days, than I switched to "2"
It kept my drive stabil for 2 or 3 days. Than it appeared once again, since reboot 20h stable.
@SarpeTronic Did you actually use this file? You need the HostMemoryBufferBytes entry too if you are using HMBAllocationPolicy 2
@SarpeTronic did you make the HostMemoryBufferBytes entry too? Did you check your device id is DEV_5041?
I hadn't set HostMemoryBufferBytes, I set it today at noon.
This should be the right ID: PCI\VEN_15B7&DEV_5041&SUBSYS_504115B7&REV_01
Hardware ID: SCSI\DiskNVMe___________________________WD_Blue_SN580_2TB281040WD
Ok not surprised it was still crashing then. HMBAllocationPolicy 2 just means maximum size, the HostMemoryBufferBytes sets the max to 64MB for the sn770 and sn580 device IDs.
At least HostMemoryBufferByte =2 it kept the system stable for a few days.
I had the Information that:
0=off
1= 8
2 = 64
3 = firmware controled
NVME Host Memory Buffer reporting?? | HWiNFO® Forum
Now I'll watch what happens the next days
No that's not the case, at least not anymore in 24H2
0 = disabled
1 = minimum (specified by device firmware)
2 = maximum (specified by device firmware, up to 1GB or 1/16 of system ram. In older version of windows 64MB was the max)
3 = some kind of automatic device demand mode, it's not very clear.
You can check the min and max your drives firmware is requesting as well as the actual buffer size with the "NVME HMB info” tool from http://vlo.name:3000/ssdtool/
For my sn770 the minimum is 3MB and max is 200MB, but it looks like the max doesn't actually work. So this reg file reinstates the old 64MB limit.
NVME SSD HMB Info v0.21a by Ochkin Vadim
0: (SanDisk SD9SB8W128G1001
1: (WD Blue SN580 2TB
Please select drive number:1
DiskName: \.\PhysicalDrive1
ScsiName: \.\SCSI2:
Disk: WD Blue SN580 2TB
FW : 281040WD
Idenify info:
Namespaces : 1
HMB Preffered Size: 204800 KB
HMB Minimum Size : 3292 KB
Unalloc capacity : 0 MB
HMB info:
HMB : Enabled
HMB Size : 64 M
DescriptorListAdr: 0x00000001:377fa000
Entries : 1
At 64MB you should be fine then, if you still have issues I guess you have a different problem. This patch is to help people on 24H2 and 200MB allocated.
I run Server 2025, it's affectet too, as it's also 24/H2
Western Digital has released a firmware update that limits HMB to 64MB and potentially other fixes, that should be used and not this anymore.
Western Digital has released a firmware update that limits HMB to 64MB and potentially other fixes, that should be used and not this anymore.
Can you tell me if I need to delete the registry entry before putting this update?
I applied the firmware update, then removed the reg changes with https://gist.github.com/nissel/a20a6ca5f8aeb8802554f239a28833bd then rebooted
But they aren't going to interact in any strange way, the firmware patch appears to just limit the buffer to 64MB so fixes the issue in exactly the same way.
I wouldn't want to install a firmware update in a system that's crashing randomly, as if it did crash during the update that would probably be very bad. So id say it's best to leave the reg changes there until you update the firmware.
I applied the firmware update, then removed the reg changes with https://gist.github.com/nissel/a20a6ca5f8aeb8802554f239a28833bd then rebooted
But they aren't going to interact in any strange way, the firmware patch appears to just limit the buffer to 64MB so fixes the issue in exactly the same way.
I wouldn't want to install a firmware update in a system that's crashing randomly, as if it did crash during the update that would probably be very bad. So id say it's best to leave the reg changes there until you update the firmware.
Well I wouldn't install an update on a system that could shut down at any moment either :). If you modify the registry, the changes are applied only after a reboot. But I'll do as you said anyway. Thanks!
Anyone know what these values should be for an sn550 drive? I've also been affected by BSOD but no firmware update. New HWinfo update reports 200mb hmb even if it set all variables.
Anyone know what these values should be for an sn550 drive? I've also been affected by BSOD but no firmware update. New HWinfo update reports 200mb hmb even if it set all variables.
Just try to disable HMB, setting the limit didn't help me initially either, although I have an SN770
Thanks, value that worked for the sn550 if anyone else is interested is:
VEN_15B7&DEV_5009&REV_?? 67108864
Fixed SN580 device id, set it to DEV_5041 was previously DEV_5040