Over the weekend, we talked about an issue surrounding AMD's Ryzen-based processors on Unix-based OSes. Today, we learn a lot more about what's going on, as well as which products are actually affected. But first, let's get the upside out of the way: this bug is rare, and requires very specific conditions. The vast majority of users are not going to experience an issue, but it's at least an issue to be aware of.
With almost comical timing, SMT issues surrounding both FreeBSD and Linux were outed at around the same time, although it's now been confirmed that the issues are different.
Through exhaustive testing, Phoronix discovered that Ryzen under Linux will segfault up and down if a handful of applications are compiled at once, in a certain way. Because the gcc compiler is able to take advantage of as many threads as is provided, even a single compile could exercise the CPU well. Four at the same time is pretty much overkill, and unrealistic for most people. And, even if you do compile four things at once, it's not guaranteed you'll actually see the issue. The best way to exploit this bug is to do it on purpose, and that's again unrealistic.
Fortunately (and almost critically so), this bug does not affect the enterprise-targeted EPYC processors, released last month, or the new Ryzen Threadripper models due out in mere days (don't miss our in-depth preview).
Exercised the right way, Ryzen can transport you to Segfault City
What's less clear is how this issue will be fixed, but AMD did have some positive things to relay to us. For starters, the company is going to be working with all of its customers that are affected by this bug to resolve the issue. The fact that there is a potential solution is a very good thing (it could be as simple as altering the system configuration). That leads us to believe a kernel fix will be deployed at some point. Tying into that, AMD has also committed to enhancing its Linux testing going forward, so that bugs like these will be found a lot sooner.
Ultimately, there is a clear anomaly here, but it takes so much effort to exploit, that it seems highly unlikely that anyone will have to deal with it in real-world use cases.