Monday, February 27th 2017
AMD's Ryzen CPU Series will Need Modern Linux Kernel for Proper Support
So, it's not just Windows that will be pulling the "you need the latest version" card when it comes to Ryzen CPU support. Apparently, Linux will need kernel version 4.9.10 or better to enable a lot of features, SMT included. If you really want good support, the "newer the better" is generally the way to go.
Operating below that version won't necessarily stop Ryzen from functioning as a CPU, but several notable features, most notably SMT, will be completely "broken" according to the article at Phronix.
Phronix notes that the fix landed in early February. It notes in the commit message:
Source:
Phronix
Operating below that version won't necessarily stop Ryzen from functioning as a CPU, but several notable features, most notably SMT, will be completely "broken" according to the article at Phronix.
Phronix notes that the fix landed in early February. It notes in the commit message:
After: a33d331761bc ("x86/CPU/AMD: Fix Bulldozer topology") our SMT scheduling topology for Fam17h systems is broken, because the ThreadId is included in the ApicId when SMT is enabled. So, without further decoding cpu_core_id is unique for each thread rather than the same for threads on the same core. This didn't affect systems with SMT disabled. Make cpu_core_id be what it is defined to be.So there it is, for you techno-wizards. Apparently, microcode actually is relevant to support features, and Microsoft's claims have some degree of merit.
81 Comments on AMD's Ryzen CPU Series will Need Modern Linux Kernel for Proper Support
In other words, this was inevitable with all operating systems running Ryzen.
New kernel can be compiled in any curent/past distro. Science run on Linux. I recently visited the cutting edge AI research center in Montreal, it's Linux wall to wall on every machines. I asked about it and they mentionned scalability, performance and the fact that most researchers only use linux in university anyway. Cost (lack of) is just an added benefit.
Things like "scalability and performance" are important in servers and computation clusters (where Linux clearly is more popular), but they have little to do with popularity on typical end-user machine. :)
The reason why Linux is so popular among some scientists (mostly math and physics) is because it's beautifully easy to make semi-automatic workflow for scripting/coding/data analysis. That's because Linux is still basically a shell-driven OS and the graphical interface is somehow "forced" on a system that could easily work without it. Whenever you click something, a tiny command-line opens and does the job, so you can easily do the same thing just by writing the underneath command yourself. What's equally important: pretty much every application also has a text output.
By contrast, there are things on Windows you can't do by writing a command in prompt. And even if you can force a Windows workflow similar to that on Linux, it usually takes a lot more time.
Microsoft has already surrendered in forcing their own shell standard - the Powershell (although it's actually excellent - quite superior to bash in some ways). It has never become the "default" shell of Windows, so we're still using the awful cmd. Windows 10 already includes bash (like the one on Linux) and at some point will be fully built around it.
That said, Windows has a much better interface and is generally easier to use (because it is built to be operated using a mouse).
So just because the 4.10 version of the linux kernel is where the fix was made to support SMT from Ryzen chips isn't the same as saying that 'You need to upgrade your kernel'. You would need to get that information from the distros themselves.
People confuse what the individual Linux-based OS do to make their product appeal to certain users with the actual development of the kernel itself maintained by Linus Torvalds and contributed to by thousands of developers from companies like AMD and Intel, who has an interest in supporting their products on this kernel.
Both Ubuntu and Red Hat (I don't know about SUSE or other companies) maintain older version of the linux kernel for security and hardware fixes like these.
I have yet to see an app that does get new features in older branches though.
Business might be somewhat more problematic, but neither have I seen many businesses move beyond Kiosk workers, and are probably running either SUSE or Ubuntu anyway, so again, downstream is pretty well much guaranteed. And anyone more esoteric than that has probably done it for a reason, and I'm sure they have the know how to implement the change in their environment.
Server is a different kettle of fish (but again, most are running Ubuntu\RedHat\SUSE) so apart from having to go thru the pain of verifying the update, probably not a problem.
But, going back to the original topic... Here's a full quote from Phoronix: So, 4.10 is fine. Fixes are backported to 4.9, so it should be fine too.
Which means, even today before Ryzen went on sale, most of us mortals should be fine.
Not so sure about BSD, but I'm confident they are working on it too (so far no news besides "it should work").
1) people very serious about stability delay kernel update (they have bugs etc),
2) from time to time a new kernel stops supporting something (firmware/hardware), so people stay on an older version
3) a "power efficiency regression" is observable, e.g. new kernels increase power usage, so you may want to freeze the kernel in your notebook
But in general you're right - kernels are free, don't change OS interface etc, so in general it is recommended to update
As for the news, it's not only Ryzen CPUs which need new code, but also motherboard components. For example Realtek ALC1220 audio codec is only going to be supported in kernel 4.11 and newer (it's in the linked Phoronix article).
So, yeah, Windows costs money. But for a reason.