How to check if RAM is running in ECC mode?
Solution 1:
Today I found out that there is a commercial version of memtest86
(without the +
) from PassMark that offers a free version too which thankfully included ECC-Checks.
In addition it also supports DDR4 and all the other features of memtest86+
.
My result seem to be positive for ECC support, so I will call this done, even though I was hoping to get the same result with "traditional" tools like dmidecode
.
If someone stumbles upon this post at a later point in time and needs further validation and tests, they also offer a paid version that supports ECC error injection for actually testing the ECC capabilities.
Solution 2:
Edited: Bad new from your motherboard manual... :
I see you run BSD/linux, run that inside the OS; (Available for FreeNAS)
dmidecode -t 17
You should have a output like:
dmidecode 2.12
SMBIOS 2.5 present.
Handle 0x1100, DMI type 17, 28 bytes
Memory Device
Array Handle: 0x1000
Error Information Handle: Not Provided
Total Width: 72 bits
Data Width: 64 bits
Size: 2048 MB
Form Factor: DIMM
Set: 1
Locator: DIMM1
Bank Locator: Not Specified
Type: DDR2
Type Detail: Synchronous
Speed: 667 MHz
Manufacturer: AD00000000000000
Serial Number: 00002062
Asset Tag: 010839
Part Number: HYMP125P72CP8-Y5
Rank: 2
The Total Width: 72 bits is the part you are looking for.
On Windows system you can run
wmic MEMORYCHIP get DataWidth,TotalWidth
//ECC Memory DataWidth TotalWidth 64 72
//Non-ECC Memory DataWidth TotalWidth 64 64
Answer for FreeBSD & Windows took from there
Solution 3:
Using a Ryzen 7 processor, none of the mentioned tools worked for me either. However with a recent enough Linux kernel, the tools in edac-utils, edac-ctl and edac-util can read out the ECC status and also things like number of corrected errors. The kernel log will also contain lines with "EDAC" in dmesg, which should give some information as well. This functionality can be further tested by overclocking the RAM and checking that errors are reported (if going high enough), that is about as much proof as you can get that it really works. However even if these tools report errors or do not work, that only means that reading ECC status information is not supported, there seems to be no 100% reliable way to prove that ECC is NOT working...