Re: [PATCHv2 0/4] x86: 5-level related changes into decompression code

From: Kirill A. Shutemov
Date: Wed Nov 29 2017 - 11:13:56 EST


On Wed, Nov 29, 2017 at 04:49:08PM +0100, Borislav Petkov wrote:
> On Sat, Nov 11, 2017 at 01:06:41AM +0300, Kirill A. Shutemov wrote:
> > Hi Ingo,
> >
> > Here's updated changes that prepare the code to boot-time switching between
> > paging modes and handle booting in 5-level mode when bootloader put kernel
> > image above 4G, but haven't enabled 5-level paging for us.
>
> Btw, if I enable CONFIG_X86_5LEVEL with 4.15-rc1 on an AMD box, the box
> triple-faults and ends up spinning in a reboot loop. Even though it
> should say:
>
> early console in setup code
> This kernel requires the following features not present on the CPU:
> la57
> Unable to boot - please use a kernel appropriate for your CPU.
>
> and halt.
>
> A kvm guest still does that but baremetal triple-faults.
>
> Ideas?

Looks like we call check_cpuflags() too late. 5-level paging gets enabled
before image decompression started.

For qemu/kvm it works because it's supported in softmmu, even if not
advertised in cpuid.

I'm not sure if it worth fixing on its own. I would rather get boot-time
switching code upstream sooner. It will get problem go away naturally.

--
Kirill A. Shutemov