Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1651074

Re: [PATCHv1, RFC 0/8] Boot-time switching between 4- and 5-level paging

From Kevin Easton <kevin@guarana.org>
Newsgroups linux.kernel
Subject Re: [PATCHv1, RFC 0/8] Boot-time switching between 4- and 5-level paging
Date 2017-05-26 06:30 +0200
Message-ID <tLf2W-1ap-7@gated-at.bofh.it> (permalink)
References <tL7I5-4wz-3@gated-at.bofh.it> <tLamB-6m2-1@gated-at.bofh.it> <tLbC1-79q-9@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On Thu, May 25, 2017 at 05:40:16PM -0700, Andy Lutomirski wrote:
> On Thu, May 25, 2017 at 4:24 PM, Linus Torvalds
> <torvalds@linux-foundation.org> wrote:
> > On Thu, May 25, 2017 at 1:33 PM, Kirill A. Shutemov
> > <kirill.shutemov@linux.intel.com> wrote:
> >> Here' my first attempt to bring boot-time between 4- and 5-level paging.
> >> It looks not too terrible to me. I've expected it to be worse.
> >
> > If I read this right, you just made it a global on/off thing.
> >
> > May I suggest possibly a different model entirely? Can you make it a
> > per-mm flag instead?
> >
> > And then we
> >
> >  (a) make all kthreads use the 4-level page tables
> >
> >  (b) which means that all the init code uses the 4-level page tables
> >
> >  (c) which means that all those checks for "start_secondary" etc can
> > just go away, because those all run with 4-level page tables.
> >
> > Or is it just much too expensive to switch between 4-level and 5-level
> > paging at run-time?
> >
> 
> Even ignoring expensiveness, I'm not convinced it's practical.  AFAICT
> you can't atomically switch the paging mode and CR3, so either you
> need some magic page table with trampoline that works in both modes
> (which is presumably doable with some trickery) or you need to flip
> paging off.  Good luck if an NMI hits in the mean time.  There was
> code like that once upon a time for EFI mixed mode, but it got deleted
> due to triple-faults.

According to Intel's documentation you pretty much have to disable
paging anyway:

"The processor allows software to modify CR4.LA57 only outside of IA-32e
mode. In IA-32e mode, an attempt to modify CR4.LA57 using the MOV CR
instruction causes a general-protection exception (#GP)."

(If it weren't for that, maybe you could point the last entry in the PML4
at the PML4 itself, so it also works as a PML5 for accessing kernel
addresses? And of course make sure nothing gets loaded above 
0xffffff8000000000).

    - Kevin

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCHv1, RFC 0/8] Boot-time switching between 4- and 5-level paging "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com> - 2017-05-25 22:40 +0200
  [PATCHv1, RFC 2/8] x86/mm: Make virtual memory layout movable for CONFIG_X86_5LEVEL "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com> - 2017-05-25 22:40 +0200
  Re: [PATCHv1, RFC 0/8] Boot-time switching between 4- and 5-level paging Linus Torvalds <torvalds@linux-foundation.org> - 2017-05-26 01:30 +0200
    Re: [PATCHv1, RFC 0/8] Boot-time switching between 4- and 5-level paging Andy Lutomirski <luto@kernel.org> - 2017-05-26 02:50 +0200
      Re: [PATCHv1, RFC 0/8] Boot-time switching between 4- and 5-level  paging Kevin Easton <kevin@guarana.org> - 2017-05-26 06:30 +0200
        Re: [PATCHv1, RFC 0/8] Boot-time switching between 4- and 5-level paging Andy Lutomirski <luto@kernel.org> - 2017-05-26 09:30 +0200
    Re: [PATCHv1, RFC 0/8] Boot-time switching between 4- and 5-level  paging "Kirill A. Shutemov" <kirill@shutemov.name> - 2017-05-26 15:10 +0200
      Re: [PATCHv1, RFC 0/8] Boot-time switching between 4- and 5-level  paging Andi Kleen <ak@linux.intel.com> - 2017-05-26 15:40 +0200
      Re: [PATCHv1, RFC 0/8] Boot-time switching between 4- and 5-level paging Linus Torvalds <torvalds@linux-foundation.org> - 2017-05-26 18:00 +0200
        Re: [PATCHv1, RFC 0/8] Boot-time switching between 4- and 5-level  paging "Kirill A. Shutemov" <kirill@shutemov.name> - 2017-05-26 18:00 +0200
          Re: [PATCHv1, RFC 0/8] Boot-time switching between 4- and 5-level paging Linus Torvalds <torvalds@linux-foundation.org> - 2017-05-26 18:20 +0200
        Re: [PATCHv1, RFC 0/8] Boot-time switching between 4- and 5-level  paging Dave Hansen <dave.hansen@intel.com> - 2017-05-26 21:30 +0200
          Re: [PATCHv1, RFC 0/8] Boot-time switching between 4- and 5-level paging hpa@zytor.com - 2017-05-26 21:50 +0200
        Re: [PATCHv1, RFC 0/8] Boot-time switching between 4- and 5-level paging hpa@zytor.com - 2017-05-26 21:30 +0200
      Re: [PATCHv1, RFC 0/8] Boot-time switching between 4- and 5-level paging hpa@zytor.com - 2017-05-26 22:20 +0200

csiph-web