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

From: Kirill A. Shutemov
Date: Wed Nov 29 2017 - 12:08:38 EST


On Wed, Nov 29, 2017 at 05:40:32PM +0100, Thomas Gleixner wrote:
> On Wed, 29 Nov 2017, Kirill A. Shutemov wrote:
>
> > 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.
>
> It needs to be fixed now. Because that problem exists in 4.14

Okay.

We're really early in the boot -- startup_64 in decompression code -- and
I don't know a way print a message there. Is there a way?

no_longmode handled by just hanging the machine. Is it enough for no_la57
case too?

--
Kirill A. Shutemov