Re: [PATCH 1/3] x86/boot: Add bit fields into xloadflags for 5-level kernel checking

From: H. Peter Anvin
Date: Wed Sep 05 2018 - 00:06:58 EST


On 09/04/18 01:42, Kirill A. Shutemov wrote:
>
> Switching between 4- and 5-level paging modes (in either direction)
> requires paing disabling. It means the code that does the switching has to
> be under 4G otherwise we would lose control.
>
> We handle the switching correctly in kernel decompression code, but not on
> kexec caller side.
>
> XLF_5LEVEL indicates that kernel decompression code can deal with
> switching between paging modes and it's safe to jump there in 5-level
> paging mode.
>
> As an alternative we can change kexec to switch to 4-level paging mode
> before starting the new kernel. Not sure how hard it will be.
>

Have a flag saying entering in 5-level mode is fine. However, you really
should support returning to 4-level mode in kexec. It is *much* easier to do
on the caller side as you have total control of memory allocation there.

-hpa