From: Peter Zijlstra <peterz@infradead.org>
To: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
Cc: Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
Dave Hansen <dave.hansen@linux.intel.com>,
x86@kernel.org, "Rafael J. Wysocki" <rafael@kernel.org>,
Adrian Hunter <adrian.hunter@intel.com>,
Kuppuswamy Sathyanarayanan
<sathyanarayanan.kuppuswamy@linux.intel.com>,
Elena Reshetova <elena.reshetova@intel.com>,
Jun Nakajima <jun.nakajima@intel.com>,
Rick Edgecombe <rick.p.edgecombe@intel.com>,
Tom Lendacky <thomas.lendacky@amd.com>,
"Kalra, Ashish" <ashish.kalra@amd.com>,
Sean Christopherson <seanjc@google.com>,
"Huang, Kai" <kai.huang@intel.com>, Baoquan He <bhe@redhat.com>,
kexec@lists.infradead.org, linux-coco@lists.linux.dev,
linux-kernel@vger.kernel.org
Subject: Re: [PATCHv3 06/14] x86/kexec: Keep CR4.MCE set during kexec for TDX guest
Date: Wed, 15 Nov 2023 13:23:43 +0100 [thread overview]
Message-ID: <20231115122343.GA8262@noisy.programming.kicks-ass.net> (raw)
In-Reply-To: <20231115120044.8034-7-kirill.shutemov@linux.intel.com>
On Wed, Nov 15, 2023 at 03:00:36PM +0300, Kirill A. Shutemov wrote:
> TDX guests are not allowed to clear CR4.MCE. Attempt to clear it leads
> to #VE.
>
> Use alternatives to keep the flag during kexec for TDX guests.
>
> The change doesn't affect non-TDX-guest environments.
>
> Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
> Reviewed-by: Kai Huang <kai.huang@intel.com>
> ---
> arch/x86/kernel/relocate_kernel_64.S | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/arch/x86/kernel/relocate_kernel_64.S b/arch/x86/kernel/relocate_kernel_64.S
> index 56cab1bb25f5..bea89814b48e 100644
> --- a/arch/x86/kernel/relocate_kernel_64.S
> +++ b/arch/x86/kernel/relocate_kernel_64.S
> @@ -145,11 +145,16 @@ SYM_CODE_START_LOCAL_NOALIGN(identity_mapped)
> * Set cr4 to a known state:
> * - physical address extension enabled
> * - 5-level paging, if it was enabled before
> + * - Machine check exception on TDX guest. Clearing MCE is not allowed
> + * in TDX guests.
> */
> movl $X86_CR4_PAE, %eax
> testq $X86_CR4_LA57, %r13
> jz 1f
> orl $X86_CR4_LA57, %eax
> +1:
> + ALTERNATIVE "jmp 1f", "", X86_FEATURE_TDX_GUEST
> + orl $X86_CR4_MCE, %eax
> 1:
ALTERNATIVE "", "orl $X86_CR4_MCE, %eax", X86_FEATURE_TDX_GUEST
?
> movq %rax, %cr4
>
> --
> 2.41.0
>
_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec
WARNING: multiple messages have this Message-ID (diff)
From: Peter Zijlstra <peterz@infradead.org>
To: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
Cc: Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
Dave Hansen <dave.hansen@linux.intel.com>,
x86@kernel.org, "Rafael J. Wysocki" <rafael@kernel.org>,
Adrian Hunter <adrian.hunter@intel.com>,
Kuppuswamy Sathyanarayanan
<sathyanarayanan.kuppuswamy@linux.intel.com>,
Elena Reshetova <elena.reshetova@intel.com>,
Jun Nakajima <jun.nakajima@intel.com>,
Rick Edgecombe <rick.p.edgecombe@intel.com>,
Tom Lendacky <thomas.lendacky@amd.com>,
"Kalra, Ashish" <ashish.kalra@amd.com>,
Sean Christopherson <seanjc@google.com>,
"Huang, Kai" <kai.huang@intel.com>, Baoquan He <bhe@redhat.com>,
kexec@lists.infradead.org, linux-coco@lists.linux.dev,
linux-kernel@vger.kernel.org
Subject: Re: [PATCHv3 06/14] x86/kexec: Keep CR4.MCE set during kexec for TDX guest
Date: Wed, 15 Nov 2023 13:23:43 +0100 [thread overview]
Message-ID: <20231115122343.GA8262@noisy.programming.kicks-ass.net> (raw)
In-Reply-To: <20231115120044.8034-7-kirill.shutemov@linux.intel.com>
On Wed, Nov 15, 2023 at 03:00:36PM +0300, Kirill A. Shutemov wrote:
> TDX guests are not allowed to clear CR4.MCE. Attempt to clear it leads
> to #VE.
>
> Use alternatives to keep the flag during kexec for TDX guests.
>
> The change doesn't affect non-TDX-guest environments.
>
> Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
> Reviewed-by: Kai Huang <kai.huang@intel.com>
> ---
> arch/x86/kernel/relocate_kernel_64.S | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/arch/x86/kernel/relocate_kernel_64.S b/arch/x86/kernel/relocate_kernel_64.S
> index 56cab1bb25f5..bea89814b48e 100644
> --- a/arch/x86/kernel/relocate_kernel_64.S
> +++ b/arch/x86/kernel/relocate_kernel_64.S
> @@ -145,11 +145,16 @@ SYM_CODE_START_LOCAL_NOALIGN(identity_mapped)
> * Set cr4 to a known state:
> * - physical address extension enabled
> * - 5-level paging, if it was enabled before
> + * - Machine check exception on TDX guest. Clearing MCE is not allowed
> + * in TDX guests.
> */
> movl $X86_CR4_PAE, %eax
> testq $X86_CR4_LA57, %r13
> jz 1f
> orl $X86_CR4_LA57, %eax
> +1:
> + ALTERNATIVE "jmp 1f", "", X86_FEATURE_TDX_GUEST
> + orl $X86_CR4_MCE, %eax
> 1:
ALTERNATIVE "", "orl $X86_CR4_MCE, %eax", X86_FEATURE_TDX_GUEST
?
> movq %rax, %cr4
>
> --
> 2.41.0
>
next prev parent reply other threads:[~2023-11-15 12:23 UTC|newest]
Thread overview: 95+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-15 12:00 [PATCHv3 00/14] x86/tdx: Add kexec support Kirill A. Shutemov
2023-11-15 12:00 ` Kirill A. Shutemov
2023-11-15 12:00 ` [PATCHv3 01/14] x86/acpi: Extract ACPI MADT wakeup code into a separate file Kirill A. Shutemov
2023-11-15 12:00 ` Kirill A. Shutemov
2023-11-21 2:08 ` Huang, Kai
2023-11-21 2:08 ` Huang, Kai
2023-11-15 12:00 ` [PATCHv3 02/14] x86/apic: Mark acpi_mp_wake_* variables as __ro_after_init Kirill A. Shutemov
2023-11-15 12:00 ` Kirill A. Shutemov
2023-11-21 2:08 ` Huang, Kai
2023-11-21 2:08 ` Huang, Kai
2023-11-15 12:00 ` [PATCHv3 03/14] cpu/hotplug: Add support for declaring CPU offlining not supported Kirill A. Shutemov
2023-11-15 12:00 ` Kirill A. Shutemov
2023-11-21 2:15 ` Huang, Kai
2023-11-21 2:15 ` Huang, Kai
2023-11-21 9:31 ` kirill.shutemov
2023-11-21 9:31 ` kirill.shutemov
2023-11-15 12:00 ` [PATCHv3 04/14] cpu/hotplug, x86/acpi: Disable CPU offlining for ACPI MADT wakeup Kirill A. Shutemov
2023-11-15 12:00 ` Kirill A. Shutemov
2023-11-15 12:00 ` [PATCHv3 05/14] x86/kvm: Do not try to disable kvmclock if it was not enabled Kirill A. Shutemov
2023-11-15 12:00 ` Kirill A. Shutemov
2023-11-15 12:00 ` [PATCHv3 06/14] x86/kexec: Keep CR4.MCE set during kexec for TDX guest Kirill A. Shutemov
2023-11-15 12:00 ` Kirill A. Shutemov
2023-11-15 12:23 ` Peter Zijlstra [this message]
2023-11-15 12:23 ` Peter Zijlstra
2023-11-15 13:03 ` Kirill A. Shutemov
2023-11-15 13:03 ` Kirill A. Shutemov
2023-11-15 12:00 ` [PATCHv3 07/14] x86/mm: Make x86_platform.guest.enc_status_change_*() return errno Kirill A. Shutemov
2023-11-15 12:00 ` Kirill A. Shutemov
2023-11-15 12:00 ` [PATCHv3 08/14] x86/mm: Return correct level from lookup_address() if pte is none Kirill A. Shutemov
2023-11-15 12:00 ` Kirill A. Shutemov
2023-11-15 12:00 ` [PATCHv3 09/14] x86/tdx: Account shared memory Kirill A. Shutemov
2023-11-15 12:00 ` Kirill A. Shutemov
2023-11-21 2:47 ` Huang, Kai
2023-11-21 2:47 ` Huang, Kai
2023-11-21 9:42 ` kirill.shutemov
2023-11-21 9:42 ` kirill.shutemov
2023-11-21 9:49 ` kirill.shutemov
2023-11-21 9:49 ` kirill.shutemov
2023-11-15 12:00 ` [PATCHv3 10/14] x86/tdx: Convert shared memory back to private on kexec Kirill A. Shutemov
2023-11-15 12:00 ` Kirill A. Shutemov
2023-11-21 3:46 ` Huang, Kai
2023-11-21 3:46 ` Huang, Kai
2023-11-21 9:58 ` kirill.shutemov
2023-11-21 9:58 ` kirill.shutemov
2023-11-22 10:07 ` Huang, Kai
2023-11-22 10:07 ` Huang, Kai
2023-11-23 13:47 ` kirill.shutemov
2023-11-23 13:47 ` kirill.shutemov
2023-11-15 12:00 ` [PATCHv3 11/14] x86/mm: Make e820_end_ram_pfn() cover E820_TYPE_ACPI ranges Kirill A. Shutemov
2023-11-15 12:00 ` Kirill A. Shutemov
2023-11-15 12:00 ` [PATCHv3 12/14] x86/acpi: Rename fields in acpi_madt_multiproc_wakeup structure Kirill A. Shutemov
2023-11-15 12:00 ` Kirill A. Shutemov
2023-11-15 12:00 ` [PATCHv3 13/14] x86/acpi: Do not attempt to bring up secondary CPUs in kexec case Kirill A. Shutemov
2023-11-15 12:00 ` Kirill A. Shutemov
2023-11-15 20:12 ` Kuppuswamy Sathyanarayanan
2023-11-15 20:12 ` Kuppuswamy Sathyanarayanan
2023-11-15 12:00 ` [PATCHv3 14/14] x86/acpi: Add support for CPU offlining for ACPI MADT wakeup method Kirill A. Shutemov
2023-11-15 12:00 ` Kirill A. Shutemov
2023-11-15 20:30 ` kernel test robot
2023-11-23 9:38 ` Huang, Kai
2023-11-23 9:38 ` Huang, Kai
2023-12-01 15:57 ` kirill.shutemov
2023-12-01 15:57 ` kirill.shutemov
2023-12-04 22:43 ` Huang, Kai
2023-12-04 22:43 ` Huang, Kai
2023-11-16 12:10 ` [PATCHv3 00/14] x86/tdx: Add kexec support Baoquan He
2023-11-16 12:10 ` Baoquan He
2023-11-16 12:56 ` Kirill A. Shutemov
2023-11-16 12:56 ` Kirill A. Shutemov
2023-11-16 14:17 ` Baoquan He
2023-11-16 14:17 ` Baoquan He
2023-11-16 14:45 ` Baoquan He
2023-11-16 14:45 ` Baoquan He
2023-11-17 12:47 ` Kirill A. Shutemov
2023-11-17 12:47 ` Kirill A. Shutemov
2023-11-17 15:03 ` Baoquan He
2023-11-17 15:03 ` Baoquan He
2023-11-17 15:46 ` Kirill A. Shutemov
2023-11-17 15:46 ` Kirill A. Shutemov
2023-11-21 6:41 ` Baoquan He
2023-11-21 6:41 ` Baoquan He
2023-11-21 8:43 ` Kirill A. Shutemov
2023-11-21 8:43 ` Kirill A. Shutemov
2023-11-21 9:10 ` Tao Liu
2023-11-21 9:10 ` Tao Liu
2023-11-21 9:24 ` Kirill A. Shutemov
2023-11-21 9:24 ` Kirill A. Shutemov
2023-11-21 10:15 ` Baoquan He
2023-11-21 10:15 ` Baoquan He
2023-11-21 10:40 ` Kirill A. Shutemov
2023-11-21 10:40 ` Kirill A. Shutemov
2023-11-21 12:50 ` Baoquan He
2023-11-21 12:50 ` Baoquan He
2023-11-28 15:45 ` Isaku Yamahata
2023-11-28 15:45 ` Isaku Yamahata
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20231115122343.GA8262@noisy.programming.kicks-ass.net \
--to=peterz@infradead.org \
--cc=adrian.hunter@intel.com \
--cc=ashish.kalra@amd.com \
--cc=bhe@redhat.com \
--cc=bp@alien8.de \
--cc=dave.hansen@linux.intel.com \
--cc=elena.reshetova@intel.com \
--cc=jun.nakajima@intel.com \
--cc=kai.huang@intel.com \
--cc=kexec@lists.infradead.org \
--cc=kirill.shutemov@linux.intel.com \
--cc=linux-coco@lists.linux.dev \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=rafael@kernel.org \
--cc=rick.p.edgecombe@intel.com \
--cc=sathyanarayanan.kuppuswamy@linux.intel.com \
--cc=seanjc@google.com \
--cc=tglx@linutronix.de \
--cc=thomas.lendacky@amd.com \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.