On Mon, Apr 10 2023 at 01:14, Xin Li wrote: > From: "H. Peter Anvin (Intel)" <hpa@xxxxxxxxx> > > The FRED architecture establishes the full supervisor/user through: > 1) FRED event delivery swaps the value of the GS base address and > that of the IA32_KERNEL_GS_BASE MSR. > 2) ERETU swaps the value of the GS base address and that of the > IA32_KERNEL_GS_BASE MSR. > Thus, the swapgs instruction is disallowed when FRED is enabled, > otherwise it causes #UD. Which does not explain why writing directly to the IA32_KERNEL_GS_BASE MSR is doing the right thing. Thanks, tglx