Hi
I'm well aware of what can happen if zfs is not using ecc-ram, although I find it an design fault (there's no ecc inside most CPU's for instance).
That is accurate but also very inaccurate. Literally EVERY Intel CPU (including desktop CPUs AFAIK) that has L1/L2/L3 caches has parity for those caches in the last 5+ years (and probably more like 20+ years). In fact I believe we've had a handful of people that have had ECC cache errors reported due to CPU errata with virtualbox. If you read up on ECC RAM there are spacecraft that were launched in the mid 1990s with ECC RAM. This technology is not new by any stretch of the imagination. The CPU caches have parity because parity can identify corrupt bits but cannot correct for them. This isn't a big deal because the CPU cache should be nothing more than a copy of what is in RAM. In the event of a parity failure your OS should log the parity error and the CPU will simply retrieve a good copy of the data from RAM.
Now if AMD doesn't, that's totally their fail. I don't particularly like AMD and I'm not up to snuff to agree or disagree with what AMD's designs do. I'd consider this one of the stupidest things they could possibly do if their caches don't have some form of data protection. In fact, if they really are that stupid then they probably deserve to go out of business for that kind of blantant stupidity with regards to engineering principles.
I'm not talking about a way to drop ECC-ram, I'm using it also (and considered moving to a xeon on my main workstation for it).
I'm talking for those that have ECC-ram, but are still not sure. It's very difficult to test ecc-ram and a regular test would give me less worries.
You aren't understanding the big picture. ECC RAM tests itself, automatically, when it is accessed. EVERY SINGLE bit of data that comes into the memory controller (which is the direct link between the RAM and everything else) does the ECC check if enabled and if supported with appropriate hardware. There is *nothing* that needs to be done on your part after that.
ECC scrubbing is for systems that are absurdly large and have huge sums of RAM that may not even be accessed every day. For those systems it's within the realm of statistical chance that you might have a single bit error that hasn't been found because you haven't read that RAM location in days, weeks, or maybe even years. *If* a second error were to occur in that block then you would be unable to correct it with ECC (remember, ECC can correct single-bit errors but only identify multi-bit errors). Scrubbing of the RAM has the system slowly go from the beginning to the end and literally read all the RAM. Why? Because if you have to read it then it must, therefore, be checked by the memory controller. The "hope" is that you correct single-bit errors (which you can correct) before they become multi-bit errors (which you can't correct and halts the system). ECC scrubbing is nothing more than a simple way to test RAM while the system is actually operating. There is a performance penalty, but for many situations it is more important to be reliable than to be fast.
If you are shooting for uptime measured in years then you absolutely want scrubbing. On the other hand if you are one of us mere mortals that has uptime measured in weeks or months because you *do* like to upgrade FreeNAS (and therefore a reboot will be necessary) then scrubbing is much less important. The likelihood of two bitflips in the same 64-bit row is extremely slim except if the RAM has suddenly failed outright. Of course, that kind of failure cannot be predicted and there is no amount of diagnostics that could ever identify or fix the problem anyway.