AMD Ryzen Requires Modern Linux Kernel Support
Samuel Wan / 8 years ago
Last month, some disappointing news came out about AMD’s Ryzen. According to AMD representatives, Ryzen requires Windows 10 for full support. While AMD had tested and certified Windows 7, it would not be officially supported. This meant some features would be missing and performance likely stunted. Now a new report has come out suggesting that Linux would require a modern kernel to be properly supported.
According to the report, Linux kernel 4.9.10 or 4.10 would be required at the very least. 4.10 in particular featured numerous Ryzen related changes and commits. One commit in particular, dealt with how SMT was handled. As one of the newest features AMD is introducing, SMT does require specific code to be supported. This is not unlike how Bulldozer needed a patch for CMT to be supported.
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.
Without these commits, SMT would likely be completely broken, hindering performance. While these patches can be backported as far back as 4.60, newer kernels would obviously be better. I suppose given the extensive work required to bring support for Ryzen, Microsoft wouldn’t want to put the effort to supporting an OS they consider more or less dead.