News: 0001510976

  ARM Give a man a fire and he's warm for a day, but set fire to him and he's warm for the rest of his life (Terry Pratchett, Jingo)

Linux 6.13-rc2 To Workaround Buggy Intel Lunar Lake Leading To Responsiveness Issues

([Linux Kernel] 5 Hours Ago Broken MONITOR)


Sent out this morning were the "x86/urgent" updates ahead of Linux 6.13-rc2 due out later today. There are x86 fixes for both Intel and AMD processors this week. Most notable though is fixing some buggy Intel Core Ultra " [1]Lunar Lake " behavior that could lead to responsiveness/delay issues due to the MONITOR implementation being buggy/broken.

With the [2]x86/urgent pull request that was just sent out a few minutes ago, the urgent Intel/AMD CPU fixes include:

- Have the Automatic IBRS setting check on AMD does not falsely fire in the guest when it has been set already on the host

- Make sure cacheinfo structures memory is allocated to address a boot NULL ptr dereference on Intel Meteor Lake which has different numbers of subleafs in its CPUID(4) leaf

- Take care of the GDT restoring on the kexec path too, as expected by the kernel

- Make sure SMP is not disabled when IO-APIC is disabled on the kernel cmdline

- Add a PGD flag _PAGE_NOPTISHADOW to instruct machinery not to propagate changes to the kernelmode page tables, to the user portion, in PTI

- Mark Intel Lunar Lake as affected by an issue where MONITOR wakeups can get lost and thus user-visible delays happen

- Make sure PKRU is properly restored with XRSTOR on AMD after a PRKU write of 0 (WRPKRU) which will mark PKRU in its init state and thus lose the actual buffer

Of those changes, most noticeable from my side is the Intel Lunar Lake fix where MONITOR wake-ups can get lost and user-visible delays happen as a result. One month ago I originally wrote about the problem and the patch that was sent out at the time in [3]Linux Fix Pending For Annoying Intel Lunar Lake Laptop Problems . This x86/urgent pull has that same patch of extending the Goldmont CPU check for setting "X86_BUG_MONITOR" to now also include Lunar Lake (INTEL_LUNARLAKE_M).

"x86/cpu: Add Lunar Lake to list of CPUs with a broken MONITOR implementation

Under some conditions, MONITOR wakeups on Lunar Lake processors can be lost, resulting in significant user-visible delays.

Add Lunar Lake to X86_BUG_MONITOR so that wake_up_idle_cpu() always sends an IPI, avoiding this potential delay."

It's not clear why it took one month for the patch to be fixed up given that it's causing real nuisance issues for new Lunar Lake laptops, but in any event it was sent out today and is marked for back-porting to the current Linux kernel stable series.

See the [4]x86/urgent pull request for the full list of patches now on their way to the mainline kernel in the coming hours.



[1] https://www.phoronix.com/search/Lunar+Lake

[2] https://lore.kernel.org/lkml/20241208094608.GAZ1Vq4FKYipqWZ5Th@fat_crate.local/

[3] https://www.phoronix.com/news/Intel-Lunar-Lake-Monitor-Bug

[4] https://lore.kernel.org/lkml/20241208094608.GAZ1Vq4FKYipqWZ5Th@fat_crate.local/



phoronix

This was the ultimate form of ostentation among technology freaks -- to have
a system so complete and sophisticated that nothing showed; no machines,
no wires, no controls.
-- Michael Swanwick, "Vacuum Flowers"