Linux 7.3-rc4 Blocks a Granite Rapids Microcode Trap, Fixes FRED Game Crashes, and Disables APX in Native Builds

Linux 7.3-rc4 Blocks a Granite Rapids Microcode Trap, Fixes FRED Game Crashes, and Disables APX in Native Builds

A batch of x86 and x86_64 fixes merged hours before Linux 7.3-rc4. All three are Intel, and the first is the kind of problem that is easier to prevent in software than to explain to a customer.

Granite Rapids microcode has an ordering requirement

Intel Xeon 6 “Granite Rapids” microcode revision 0x1000405 introduced internal changes that later revisions depend on. Apply a newer revision to a system that never went through 0x1000405, and you can get a machine check exception.

A machine check is the CPU reporting a hardware-level fault it cannot recover from. It is not a crash you debug. It is the processor saying something is wrong at a level below the operating system, and our kernel panic guide notes that a taint flag of M means exactly this: stop looking at software.

The kernel now refuses to load 0x1000405 or later unless the system has already been brought up to 0x1000405, for both early and late microcode loading. The fix is marked for backporting to stable series.

Intel documents the underlying issues as two errata:

  • GNR98, the machine check possibility with affected microcode versions, attributed to changes in the inter-microcode communication interface
  • GNR101, an incorrect minimum runtime microcode update revision recorded in the 0x1000423 microcode

The general shape is worth registering even if you do not own a Xeon 6. Microcode updates are not always independent of each other. The mental model most people carry, that you can jump from any revision to the newest one, is not reliably true, and the kernel is now enforcing an ordering the hardware requires.

# what microcode revision are you on
grep microcode /proc/cpuinfo | head -1
journalctl -k | grep -i microcode

FRED on Panther Lake was freezing games

The second fix addresses Intel FRED on Panther Lake causing games to crash or freeze under Wine and Steam Play.

FRED, Flexible Return and Event Delivery, is a redesign of how x86 handles interrupts, exceptions and syscalls. It is meant to be faster and considerably less baroque than the mechanisms it replaces, which have accumulated edge cases since the 1980s.

Replacing event delivery is exactly the kind of change that works everywhere until it meets software doing something unusual with the old behaviour, and Wine doing Windows syscall translation is about as unusual as userspace gets. That is why this surfaced as “my game freezes” on new laptops rather than as anything a server workload would have noticed.

Native-optimised builds were emitting registers the kernel cannot use

The third is a self-inflicted one, caught on Intel engineering systems before the hardware is out.

CONFIG_X86_NATIVE_CPU builds the kernel with -march=native, letting the compiler use every instruction the build machine supports. On upcoming Intel parts with APX (Advanced Performance Extensions), that included the extended general purpose registers R16 through R31.

The kernel is not ready for those. Register state that the kernel does not know about is register state it does not save and restore correctly, and the result was described as causing havoc. The fix explicitly blocks APX and EGPR use in native-optimised builds until in-kernel APX support actually exists.

This is a good argument against -march=native kernels in general. The performance gain is usually small, and the failure mode is that your compiler quietly uses something the kernel has not been taught to handle. Our kernel command line guide covers safer ways to tune behaviour at boot, and for most people a distribution kernel with the generic baseline is the correct choice. Ubuntu’s amd64v3 work is the more careful version of the same idea: raise the baseline deliberately and test it, rather than letting each build machine decide.

Who needs these

  • Xeon 6 operators: the microcode fix matters, and it is heading to stable
  • Panther Lake laptop owners who game: the FRED fix is the difference between working and freezing
  • Anyone building custom kernels with -march=native: relevant when APX hardware ships, and a reason to reconsider the option now

All three are in rc4, with 7.3 stable expected in October.

Background reading

Explainers for the concepts behind this story.