[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20240206182115.GQZcJ4m6amwGCc7D4Z@fat_crate.local>
Date: Tue, 6 Feb 2024 19:21:15 +0100
From: Borislav Petkov <bp@...en8.de>
To: Ard Biesheuvel <ardb+git@...gle.com>
Cc: linux-kernel@...r.kernel.org, Ard Biesheuvel <ardb@...nel.org>,
Kevin Loughlin <kevinloughlin@...gle.com>,
Tom Lendacky <thomas.lendacky@....com>,
Dionna Glaze <dionnaglaze@...gle.com>,
Thomas Gleixner <tglx@...utronix.de>,
Ingo Molnar <mingo@...hat.com>,
Dave Hansen <dave.hansen@...ux.intel.com>,
Andy Lutomirski <luto@...nel.org>, Arnd Bergmann <arnd@...db.de>,
Nathan Chancellor <nathan@...nel.org>,
Nick Desaulniers <ndesaulniers@...gle.com>,
Justin Stitt <justinstitt@...gle.com>,
Kees Cook <keescook@...omium.org>, Brian Gerst <brgerst@...il.com>,
linux-arch@...r.kernel.org, llvm@...ts.linux.dev
Subject: Re: [PATCH v3 05/19] x86/startup_64: Simplify CR4 handling in
startup code
On Mon, Jan 29, 2024 at 07:05:08PM +0100, Ard Biesheuvel wrote:
> From: Ard Biesheuvel <ardb@...nel.org>
>
> When executing in long mode, the CR4.PAE and CR4.LA57 control bits
> cannot be updated,
"Long mode requires PAE to be enabled in order to use the 64-bit
page-translation data structures to translate 64-bit virtual addresses
to 52-bit physical addresses."
which is actually already enabled at that point:
cr4 0x20 [ PAE ]
"5-Level paging is enabled by setting CR4[LA57]=1 when EFER[LMA]=1.
CR4[LA57] is ignored when long mode is not active (EFER[LMA]=0)."
and if I had a 5-level guest, it would have LA57 already set too.
So I think you mean "When paging is enabled" as dhansen correctly points
out.
> and so they can simply be preserved rather than reason about whether
> or not they need to be set. CR4.PSE has no effect in long mode so it
> can be omitted.
f4c5ca985012 ("x86_64: Show CR4.PSE on auxiliaries like on BSP")
Please don't forget about git history before doing changes here.
> CR4.PGE is used to flush the TLBs, by clearing it if it was set, and
.. to flush TLB entries with the global bit set.
And just like the above commit says, I think the CR4 settings across all
CPUs on the machine should be the same. So we want to keep PSE.
Removing the CONFIG_X86_5LEVEL ifdeffery is nice, OTOH.
Thx.
--
Regards/Gruss,
Boris.
https://people.kernel.org/tglx/notes-about-netiquette
Powered by blists - more mailing lists