AMD Per-Thread CPU Microcode Loading Fix Submitted For Linux 6.1-rc2
A set of "x86/urgent" patches were sent out this morning for pulling into the Linux kernel ahead of today's 6.1-rc2 release.
This x86/urgent pull request has a few fixes affecting the Linux kernel x86/x86_64 CPU code. There are some topology fixes, various compiler handling checks cleared up, an Intel perf LBR fix, an FPU state setup fix, and perhaps most notable is a fix to the AMD CPU microcode loader.
This summer it was discovered that AMD CPU microcode updates should be loaded on every CPU thread rather than the current Linux kernel approach of just ensuring the CPU microcode gets loaded on every physical core but not necessarily the SMT threads. This came about after an issue with AMD Bulldozer/Piledriver CPUs with updated microcode had dropped the lightweight profiling "LWP" instruction but that instruction support was still appearing on sibling threads and that ended up causing compiler problems when carrying out "-march=native" builds.
There may also be other cases where the AMD CPU microcode needs to carry out per-thread modifications, but this LWP issue with Bulldozer/Piledriver processors is what led to noting this fundamental difference in Linux's AMD CPU microcode loader.
This past week the AMD CPU microcode change for per-thread loading was revised and queued up in x86/urgent. Now today with this pull request that fix is landing. Per Linus Torvalds' usual handling, these x86 fixes will likely get picked up prior to Linux 6.1-rc2 being released this evening.
This x86/urgent pull request has a few fixes affecting the Linux kernel x86/x86_64 CPU code. There are some topology fixes, various compiler handling checks cleared up, an Intel perf LBR fix, an FPU state setup fix, and perhaps most notable is a fix to the AMD CPU microcode loader.
This summer it was discovered that AMD CPU microcode updates should be loaded on every CPU thread rather than the current Linux kernel approach of just ensuring the CPU microcode gets loaded on every physical core but not necessarily the SMT threads. This came about after an issue with AMD Bulldozer/Piledriver CPUs with updated microcode had dropped the lightweight profiling "LWP" instruction but that instruction support was still appearing on sibling threads and that ended up causing compiler problems when carrying out "-march=native" builds.
There may also be other cases where the AMD CPU microcode needs to carry out per-thread modifications, but this LWP issue with Bulldozer/Piledriver processors is what led to noting this fundamental difference in Linux's AMD CPU microcode loader.
This past week the AMD CPU microcode change for per-thread loading was revised and queued up in x86/urgent. Now today with this pull request that fix is landing. Per Linus Torvalds' usual handling, these x86 fixes will likely get picked up prior to Linux 6.1-rc2 being released this evening.
Add A Comment