Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1741558
| From | Ingo Molnar <mingo@kernel.org> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [PATCHv7 12/19] x86/mm: Adjust virtual address space layout in early boot. |
| Date | 2017-09-28 15:40 +0200 |
| Message-ID | <uuHcJ-17h-1@gated-at.bofh.it> (permalink) |
| References | <ur1Wp-5gk-5@gated-at.bofh.it> <ur265-5yD-19@gated-at.bofh.it> <uuCwr-6Fg-33@gated-at.bofh.it> <uuH34-13Q-13@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
* Kirill A. Shutemov <kirill@shutemov.name> wrote:
> On Thu, Sep 28, 2017 at 10:31:55AM +0200, Ingo Molnar wrote:
> >
> > * Kirill A. Shutemov <kirill.shutemov@linux.intel.com> wrote:
> >
> > > We need to adjust virtual address space to support switching between
> > > paging modes.
> > >
> > > The adjustment happens in __startup_64().
> >
> > > +#ifdef CONFIG_X86_5LEVEL
> > > + if (__read_cr4() & X86_CR4_LA57) {
> > > + pgtable_l5_enabled = 1;
> > > + pgdir_shift = 48;
> > > + ptrs_per_p4d = 512;
> > > + }
> > > +#endif
> >
> > So CR4 really sucks as a parameter passing interface - was it us who enabled LA57
> > in the early boot code, right? Couldn't we add a flag which gets set there, or
> > something?
>
> It's not necessary that we enabled LA57. At least I tried to write code
> that doesn't assume this. We enable it if bootloader haven't done this
> already for us.
>
> What is so awful about using CR4 as passing interface? It's one-time
> check, so performance shouldn't be an issue.
As a starter, this code is in generic x86 code [choose_random_location()], is this
CR4 bit known to AMD as well and is it guaranteed to be sane across all x86 CPUs?
I don't think so.
CR4 is a poor interface to pass CPU features through. Generaly we try to enumerate
CPU features via CPUID, and/or enable synthetic CPU features in certain cases, and
work from there.
Thanks,
Ingo
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Re: [PATCHv7 12/19] x86/mm: Adjust virtual address space layout in early boot. Ingo Molnar <mingo@kernel.org> - 2017-09-28 10:40 +0200
Re: [PATCHv7 12/19] x86/mm: Adjust virtual address space layout in early boot. "Kirill A. Shutemov" <kirill@shutemov.name> - 2017-09-28 15:30 +0200
Re: [PATCHv7 12/19] x86/mm: Adjust virtual address space layout in early boot. Ingo Molnar <mingo@kernel.org> - 2017-09-28 15:40 +0200
Re: [PATCHv7 12/19] x86/mm: Adjust virtual address space layout in early boot. "Kirill A. Shutemov" <kirill@shutemov.name> - 2017-09-28 16:30 +0200
csiph-web