News for hackers. Stuff that matters.
Re:ECC matters by vvanders on Sunday January 03, 2021 @11:49AM (#25622869)
I don't think Threadripper is a hard requirement for ECC. There's some pretty reasonable TDP processors if you step down from Threadripper.
Re:ECC matters by cuu508 on Sunday January 03, 2021 @12:03PM (#25623001)
I haven't seen definite details and test results on these (but haven't looked recently).

What specific configurations (CPU, MB, RAM) are known to work?

Let's say I have a Ryzen system, how can I check if ECC really works? Like, can I see how many bit flips got corrected in, say, last 24h?

Re:ECC matters by adrian_b on Sunday January 03, 2021 @02:10PM (#25624163)
All desktop Ryzen CPUs without integrated GPU, i.e. with the exception of APUs, support ECC.

You must check the specifications of the motherboard to see if ECC memory is supported.

As a rule, all ASRock MBs support ECC and also some ASUS MBs support ECC, e.g. all ASUS workstation motherboards.

I have no experience with Windows and Ryzen, but I assume that ECC should work also there.

With Linux, you must use a kernel with all the relevant EDAC options enabled, including CONFIG_EDAC_AMD64.

For the new Zen 3 CPUs, i.e. Ryzen 5xxx, you must use a kernel 5.10 or later, for ECC support.

On Linux, there are various programs, e.g. edac-utils, to monitor the ECC errors.

To be more certain that the ECC error reporting really works, the easiest way is to change the BIOS settings to overclock the memory, until memory errors appear.

Re:ECC matters by cturner on Sunday January 03, 2021 @12:45PM (#25623355)
Regarding verification. There is a debian package called edac-utils. As I recall you overclock your RAM and run your system at load in order to generate failures.

Looking back at my notes, the output of journalctl -b tells should say something like, "Node 0: DRAM ECC enabled."

Then 'edac-ctl --status' should tell you that drivers are loaded.

Then you run 'edac-util -v' to report on what it has seen,

    mc0: 0 Uncorrected Errors with no DIMM info
    mc0: 0 Corrected Errors with no DIMM info
    mc0: csrow2: 0 Uncorrected Errors
    mc0: csrow2: mc#0csrow#2channel#0: 0 Corrected Errors
    mc0: csrow2: mc#0csrow#2channel#1: 0 Corrected Errors
    mc0: csrow3: 0 Uncorrected Errors
    mc0: csrow3: mc#0csrow#3channel#0: 0 Corrected Errors
    mc0: csrow3: mc#0csrow#3channel#1: 0 Corrected Errors
    edac-util: No errors to report.
Re:ECC matters by a1369209993 on Sunday January 03, 2021 @02:42PM (#25624489)
> As I recall you overclock your RAM and run your system at load in order to generate failures.

You can also use memtest86+ for this, although I don't recall if it requires specific configuration for ECC testing.

Re:ECC matters by p_l on Sunday January 03, 2021 @12:46PM (#25623363)
All AMD CPUs with integrated memory controllers support ECC. The CPU also exposes an interface usable by the operating system to verify ECC works - the same interface is used to provide monitoring of memory fault data provided by ECC.

They aren't tested on it, so it's possible to get a dud, but it's minuscule chance that isn't worth bothering.

Now, to actual issues you can encounter: motherboards

The problem is that ECC means you need to have, iirc, 8 more data lines between CPU and memory module, which of course mean more physical connections (don't remember how many right now). Those also need to be properly done and tested, and you might encounter a motherboard where it wasn't done. Not sure how common, unfortunately.

Another issue is motherboard firmware. Even though AMD supplies the memory init code, the configuration can be tweaked by motherboard vendor, and they might simply break ECC support accidentally (even by something as simple as making a toggle default to false then forgot to expose it in configuration menu).

Those are the two issues you can encounter.

The difference with AFAIK Threadripper PRO, and EPYC, is that AMD includes ECC in its test and certification programs for it, which kind of enforces support.

Re:ECC matters by jtl999 on Sunday January 03, 2021 @01:42PM (#25623901)
> Another issue is motherboard firmware. Even though AMD supplies the memory init code, the configuration can be tweaked by motherboard vendor, and they might simply break ECC support accidentally (even by something as simple as making a toggle default to false then forgot to expose it in configuration menu).

I think some Gigabyte boards are infamous for this in certain circle

OTOH: Gigabyte might have a Threadripper PRO motherboard (WRX80 chipset) coming out in the future

Re:ECC matters by p_l on Sunday January 03, 2021 @03:21PM (#25624869)
Gigabyte is also infamous for trying to claim that they implemented UEFI by dropping a build of DUET (UEFI that boots on top of BIOS, used for early development) into BIOS image...
Re:ECC matters by theevilsharpie on Sunday January 03, 2021 @01:05PM (#25623542)
On Windows, to check if ECC is working, run the command 'wmic memphysical get memoryerrorcorrection':

    PC C:\> wmic memphysical get memoryerrorcorrection
    MemoryErrorCorrection
    6
SuperUser has a convenient decoder[1], but modern systems will report "6" here if ECC is working.

When Windows detects a memory error, it will record it in the system event log, under the WHEA source. As a side note, this is also how memory errors within the CPU's caches are reported under Windows.

[1] https://superuser.com/questions/893560/how-do-i-tell-if-my-m...

Re:ECC matters by xxs on Sunday January 03, 2021 @12:08PM (#25623050)
Every Ryzen (non APU) supports it* Check the montherboard of your choice, they would declare it in big bold letters, e.g.[0]

*not officially, and the memory controller provides no report for 'fixed' errors.

0: http://www.asrock.com/mb/AMD/X570%20Taichi/

Re:ECC matters by usefulcat on Sunday January 03, 2021 @12:09PM (#25623057)
It’s not. I have a low end Epyc machine with ECC. It has a TDP of something like 30 watts.
Re:ECC matters by defanor on Sunday January 03, 2021 @12:20PM (#25623135)
I didn't consider embedded CPUs (I guess that's about an embedded EPYC, not a server one), those look neat. But there's no official ECC support (i.e., it's similar to Ryzen CPUs), is there?

Edit: as detaro mentioned in the reply, there is, and here's the source [0] -- that's what they mean by "RAS" on promotional pages [1]. That indeed looks like a nice option.

[0] https://www.amd.com/system/files/documents/updated-3000-fami...

[1] https://www.amd.com/en/products/embedded-epyc-3000-series

Re:ECC matters by adrian_b on Sunday January 03, 2021 @02:19PM (#25624263)
For embedded applications, there is official ECC support for all CPUs named Epyc or Ryzen Vxxxx or Ryzen Rxxxx.

There are computers in the Intel NUC form factor, with ECC support (e.g. with Ryzen V2718), e.g from ASRock Industrial.

Re:ECC matters by detaro on Sunday January 03, 2021 @12:23PM (#25623166)
All EPYC, including the embedded ones, do officially have ECC support
Re:ECC matters by loeg on Sunday January 03, 2021 @05:33PM (#25625861)
RAS covers more than just DRAM, but yes. Historically, the reporting interface is called MCA (Machine Check Architecture) / MCE. I think both AMD and Intel have extensions with other names, but MCA/MCE points you in the right direction.
Re:ECC matters by detaro on Sunday January 03, 2021 @12:24PM (#25623173)
what kind of machine is that? Been vaguely looking for one a while back, and everything seemed difficult to get (since the main target is large-volume customers I guess)
Re:ECC matters by usefulcat on Thursday January 14, 2021 @10:26AM (#25777417)
Sorry, I didn't see this earlier. It's Supermicro board with an Epyc 3201 (8c/8t), base frequency is ~1.5 Ghz. There's no CPU fan, so it can get quite hot. It throttles at 94 degrees celcius, and it will hit that if more than around 4-6 cores are being fully used. However there are options in the bios to disable some of the cores. In my case I've disabled 4 of the cores and the temperature is much more reasonable now.