4 ms·
Just some points - The amount of memory that leaves the factory that has errors is a low percentage, not sure what it is but we can all agree it's low. - You
by themitigating 4y ago
Just some points
- The amount of memory that leaves the factory that has errors is a low percentage, not sure what it is but we can all agree it's low.
- You can run memtest when you first install memory for several hours or so to be 99.99% sure your memory is good
- There are outside influences and EXTREMEY RARE cases (cosmic radiation etc) where you may still get an error. If you had ECC it would protect you.
- If you start getting errors (as in more than the one off cosmic flare) later you can test the memory again and determine it's damaged
- Most memory you buy for builds has a lifetime warranty
- ECC costs more and reduces performance by some amount
So the only danger of not having ECC is exceedingly rare memory errors. If those rare instances mattered that much then you should get ECC but for everyone else how is it worth it?
The argument in this post is that he wouldn't have had to go through this since the ECC would have covered the error. I just don't see the value of adding this safety system.
- tomxor 4y agoRead the email. None of your scenarios fit Linus's. TL;DR sometimes memory starts off good and goes bad later.
- themitigating 4y ago"- If you start getting errors (as in more than the one off cosmic flare) later you can test the memory again and determine it's damaged - Most memory you buy for builds has a lifetime warranty"
- xxs 4y agoall those points are irrelevant - when you do work with you computer, not just being frustrated your game has crashed. running a memtest overnight is hardly a good choice.
- themitigating 4y ago"So the only danger of not having ECC is exceedingly rare memory errors. If those rare instances mattered that much then you should get ECC but for everyone else how is it worth it?"
- xxs 4y agoThe fact DDR5 has auto-error correction for the data that has arrived to the memory chip should tell the story. Still not full ECC as the latter requires cooperation w/ the memory controller, yet the price in material is there already. But yes, w/o any shadow of a doubt - the 1st and most important part of any program is correctness, optimization come afterwards.
- adrian_b 4y agoThe internal ECC of DDR5 is not good enough. Its only purpose is to restore the reliability of DDR5 to the level of DDR4, despite having smaller cells and higher throughput. The only useful ECC for the user is the one computed in the memory controller inside the CPU, stored in the DRAM and verified after returning to the memory controller. This allows the CPU to be aware of any error and it also corrects or detects the errors caused by electrical noise on the PCB traces or by bad memory sockets, not only those caused by bit flips inside the memory cells.
- ivank 4y agoI've had memory errors make many directory entries disappear in one directory on XFS, noticed only months later. When you write out bad data and the computer says everything is fine, you won't necessarily be able to get your data back.
- themitigating 4y agoSo let me understand this. Your data is important and you don't want even rare errors to occur, so you want ECC memory. However you use a non-journaling file system which is more likely to lose data?
- ivank 4y ago> XFS is a high-performance 64-bit journaling file system https://en.wikipedia.org/wiki/XFS https://en.wikipedia.org/wiki/XFS (and I don't use XFS any more.)
- xxs 4y agoJournaling won't help as the errors are in memory 1st - then replicated to the disk. It feels like arguing in bad faith. How did you arrive to the point XFS is non-journaling to begin with?
- justsomehnguy 4y agoHow a journaling FS would help in case of writing data corrupted in memory, @themitigbting? And if it doesn't help, then why you decided to bring it as an argument? NB: even if you use ZFS you still need backups.
- dralley 4y agoYou're assuming you have any decent, prompt way of detecting emergent errors before it causes damage. There is none. Whether the corruption hits a pointer (likely to cause a crash) or a tax document is effectively completely random.
- themitigating 4y agoIf it crashes then you know the error has occurred, you can then test for that error.
- dralley 4y agoA lot of damage can be done before you get an obvious memory-induced crash. Software crashes all the time for reasons other than memory issues, even someone with deep technical knowledge wouldn't necessarily jump to that conclusion. And everyone else would A) probably never even think of the possibility, B) not know how to test their memory, C) probably buy a whole new laptop instead
- kortex 4y agoThat's assuming the thing you are currently doing is what crashes, and not instead creating data (a document, a compiled binary, a financial transaction, a crypto key) which is silently corrupted and the corruption is only detected way later. C.f. xerox photocopier bug (not saying that was a memory bug, example is an insidious bug). https://www.dkriesel.com/en/blog/2013/0802_xerox-workcentres_are_switching_written_numbers_when_scanning https://www.dkriesel.com/en/blog/2013/0802_xerox-workcentres...
- asimpletune 4y agoBut the value is not having to go through what he did, right? And the whole points made above are pretty much the exact political points Linus is referencing. It’s clear in his opinion that ECC should just be normal, or at least not so elite.
- themitigating 4y agoHow is this political in anyway and why are you using the term "elite" for a product?
- lbotos 4y agoIt's the policy of CPU manufacturers to separate ECC/Non-ECC Support. For example, 12th gen intel CPUs that already exist, can now support ECC because a new chipset enables it. It was "policy" to not release ECC support for a period.
- lesuorac 4y agoI tap Hitchen's Razor [1] and dismiss your entire post. I then play TFA [2] and make the claim that I like it when computers work for at least 3 years. I end my turn. [1]: https://en.wikipedia.org/wiki/Hitchens%27s_razor https://en.wikipedia.org/wiki/Hitchens%27s_razor [2]: https://news.ycombinator.com/item?id=33224680 https://news.ycombinator.com/item?id=33224680
- themitigating 4y agoWhat do you need me to provide a source for? I normally don't cite for common knowledge and generally accepted facts. However what I consider common knowledge in this community could be wrong.
- deleted 4y ago[deleted]
- _abox 4y agoThe problem with faulty memory (that could go bad after purchasing) is not knowing about it. ECC doesn't always protect you (it can only fix one bit flip, not more), but at least you will know the memory is bad. You will not keep working with data that is being corrupted.
- smoldesu 4y agoI get what you're saying, but nobody is going to run three trials of memtest86 on their machine and chalk the data corruption up to cosmic radiation. When memory dies are broken, they're broken. It's pretty simple to ascertain that, if you suspect your memory has gone bad.
- adrian_b 4y agoYes, early warnings about bad memory modules are probably the most useful ECC feature. I have always used only ECC memory in any computer larger than an Intel NUC. When the memories were new, they always had very low rates of correctable errors, e.g. one error after 3 to 6 months of continuous operation. Nevertheless, I had several cases when a certain memory module started to have very frequent errors after several years of working fine. Due to ECC, I was able to identify it and replace it, before causing irreparable data corruption in files. Moreover, in one case I had a laptop with ECC memory which seems to have used some poor quality SODIMM sockets. After being not used for several months (which made it more sensitive to air humidity, by not being hot as during use) it seems that the contacts of the sockets had oxidized so when using the laptop again I have seen very frequent memory errors. Eventually, after some time wasted with investigation, I have scrubbed the contacts of the SODIMM sockets and I have reseated the memory modules, and the errors have disappeared. ECC is somewhat less necessary in those laptops and small computers that have soldered DRAM chips, both because the total amount of RAM is small (the error frequency is proportional with the total amount of RAM) and because there are no sockets and long PCB traces (which are susceptible to electrical noise) between CPU and RAM. At least for all computers that have socketed memory, there should have been a customer protection law forbidding the sale of such computers without ECC memory, because it is not acceptable to use a computer that may produce at any time undetectable errors.
- theevilsharpie 4y agoSo using your same rhetorical style, let me respond: - While the error rate of memory is "low" (however you define that to mean), it is not zero, so the risk of memory errors persists. - A machine without ECC memory has no reliable way to detect memory errors without some type of external diagnostic. - While a memory test can (hopefully) detect faulty memory, it takes the computer out of operation for however long the test is run, and even then, it's simply a point-in-time test. It cannot detect memory errors that happened in the past, or that will happen in the future once the test has ended. - ECC provides a mechanism to reliable detect memory errors as they occur, continuously, while the machine is running and performing useful work. - While many memory manufacturers offer lifetime warranties on their memory modules, they cannot possibly warrant against data corruption and malfunctions caused by memory errors, which can have a much higher cost to the user than the modules themselves (and would almost certainly be more than the BOM cost difference between ECC and non-ECC modules). - ECC has been cited by Microsoft and Linus Torvalds as desirable and something that should be broadly adopted, and ECC is commonly found in a wide variety of memory products (e.g., caches and solid state storage), with the glaring exception of main memory on consumer PC hardware. - While ECC does cost more (all else being equal), the side-band ECC being discussed is the same effective speed as non-ECC memory. The overhead of ECC is canceled out by the ECC DIMM's extra capacity and bandwidth relative to the non-ECC DIMM.