x86 kexec problem in stable 6.1.129 and later due to change related to PGD allocation

Elias Rudberg elias at glasklarteknik.se
Fri Mar 21 08:41:24 PDT 2025


Hello,

The following change seems to cause kexec to sometimes fail (not every 
time but about 50% chance) for the stable 6.1 kernels, 6.1.129 and later:

6821918f4519 ("x86/kexec: Allocate PGD for x86_64 transition page tables 
separately")

The commit message for that commit states that it is dependent on 
another change "x86/mm: Add _PAGE_NOPTISHADOW bit to avoid updating 
userspace page tables" but that change does not seem to have been done 
in the 6.1 kernel series, which could explain why the 6821918f4519 
change causes problems for 6.1.

This appears to be a problem only for 6.1, for the 6.6 and later stable 
kernels there is no problem.

I think the reason this problem is seen only for 6.1 and not for 6.6 and 
later is that the change "x86/kexec: Allocate PGD for x86_64 transition 
page tables separately" relies on things that are not available in 6.1.

In the tests I have done, kexec is called via u-root.
More details are available here: 
https://git.glasklar.is/system-transparency/core/stboot/-/issues/227

Cheers,
Elias



More information about the kexec mailing list