From: "Kalra, Ashish" <ashish.kalra@amd.com>
To: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>,
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
Cc: "Rafael J. Wysocki" <rafael@kernel.org>,
Peter Zijlstra <peterz@infradead.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>,
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: [PATCHv9 00/17] x86/tdx: Add kexec support
Date: Thu, 4 Apr 2024 13:27:47 -0500 [thread overview]
Message-ID: <bdeda1f9-b7d2-4bc3-ad20-342478be464b@amd.com> (raw)
In-Reply-To: <20240325103911.2651793-1-kirill.shutemov@linux.intel.com>
Hi Kirill,
On 3/25/2024 5:38 AM, Kirill A. Shutemov wrote:
> The patchset adds bits and pieces to get kexec (and crashkernel) work on
> TDX guest.
>
> The last patch implements CPU offlining according to the approved ACPI
> spec change poposal[1]. It unlocks kexec with all CPUs visible in the target
> kernel. It requires BIOS-side enabling. If it missing we fallback to booting
> 2nd kernel with single CPU.
>
> Please review. I would be glad for any feedback.
>
> [1] https://lore.kernel.org/all/13356251.uLZWGnKmhe@kreacher
>
> v9:
> - Rebased;
> - Keep page tables that maps E820_TYPE_ACPI (Ashish);
> - Ack/Reviewed/Tested-bys from Sathya, Kai, Tao;
> - Minor printk() message adjustments;
> v8:
> - Rework serialization of around conversion memory back to private;
> - Print ACPI_MADT_TYPE_MULTIPROC_WAKEUP in acpi_table_print_madt_entry();
> - Drop debugfs interface to dump info on shared memory;
> - Adjust comments and commit messages;
> - Reviewed-bys by Baoquan, Dave and Thomas;
> v7:
> - Call enc_kexec_stop_conversion() and enc_kexec_unshare_mem() after shutting
> down IO-APIC, lapic and hpet. It meets AMD requirements.
> - Minor style changes;
> - Add Acked/Reviewed-bys;
> v6:
> - Rebased to v6.8-rc1;
> - Provide default noop callbacks from .enc_kexec_stop_conversion and
> .enc_kexec_unshare_mem;
> - Split off patch that introduces .enc_kexec_* callbacks;
> - asm_acpi_mp_play_dead(): program CR3 directly from RSI, no MOV to RAX
> required;
> - Restructure how smp_ops.stop_this_cpu() hooked up in crash_nmi_callback();
> - kvmclock patch got merged via KVM tree;
> v5:
> - Rename smp_ops.crash_play_dead to smp_ops.stop_this_cpu and use it in
> stop_this_cpu();
> - Split off enc_kexec_stop_conversion() from enc_kexec_unshare_mem();
> - Introduce kernel_ident_mapping_free();
> - Add explicit include for alternatives and stringify.
> - Add barrier() after setting conversion_allowed to false;
> - Mark cpu_hotplug_offline_disabled __ro_after_init;
> - Print error if failed to hand over CPU to BIOS;
> - Update comments and commit messages;
> v4:
> - Fix build for !KEXEC_CORE;
> - Cleaner ATLERNATIVE use;
> - Update commit messages and comments;
> - Add Reviewed-bys;
> v3:
> - Rework acpi_mp_crash_stop_other_cpus() to avoid invoking hotplug state
> machine;
> - Free page tables if reset vector setup failed;
> - Change asm_acpi_mp_play_dead() to pass reset vector and PGD as arguments;
> - Mark acpi_mp_* variables as static and __ro_after_init;
> - Use u32 for apicid;
> - Disable CPU offlining if reset vector setup failed;
> - Rename madt.S -> madt_playdead.S;
> - Mark tdx_kexec_unshare_mem() as static;
> - Rebase onto up-to-date tip/master;
> - Whitespace fixes;
> - Reorder patches;
> - Add Reviewed-bys;
> - Update comments and commit messages;
> v2:
> - Rework how unsharing hook ups into kexec codepath;
> - Rework kvmclock_disable() fix based on Sean's;
> - s/cpu_hotplug_not_supported()/cpu_hotplug_disable_offlining()/;
> - use play_dead_common() to implement acpi_mp_play_dead();
> - cond_resched() in tdx_shared_memory_show();
> - s/target kernel/second kernel/;
> - Update commit messages and comments;
>
> Kirill A. Shutemov (17):
> x86/acpi: Extract ACPI MADT wakeup code into a separate file
> x86/apic: Mark acpi_mp_wake_* variables as __ro_after_init
> cpu/hotplug: Add support for declaring CPU offlining not supported
> cpu/hotplug, x86/acpi: Disable CPU offlining for ACPI MADT wakeup
> x86/kexec: Keep CR4.MCE set during kexec for TDX guest
> x86/mm: Make x86_platform.guest.enc_status_change_*() return errno
> x86/mm: Return correct level from lookup_address() if pte is none
> x86/tdx: Account shared memory
> x86/mm: Adding callbacks to prepare encrypted memory for kexec
> x86/tdx: Convert shared memory back to private on kexec
> x86/mm: Make e820_end_ram_pfn() cover E820_TYPE_ACPI ranges
> x86/acpi: Rename fields in acpi_madt_multiproc_wakeup structure
> x86/acpi: Do not attempt to bring up secondary CPUs in kexec case
> x86/smp: Add smp_ops.stop_this_cpu() callback
> x86/mm: Introduce kernel_ident_mapping_free()
> x86/acpi: Add support for CPU offlining for ACPI MADT wakeup method
> ACPI: tables: Print MULTIPROC_WAKEUP when MADT is parsed
>
> arch/x86/Kconfig | 7 +
> arch/x86/coco/core.c | 1 -
> arch/x86/coco/tdx/tdx.c | 99 ++++++++-
> arch/x86/hyperv/ivm.c | 9 +-
> arch/x86/include/asm/acpi.h | 7 +
> arch/x86/include/asm/init.h | 3 +
> arch/x86/include/asm/pgtable.h | 5 +
> arch/x86/include/asm/pgtable_types.h | 1 +
> arch/x86/include/asm/set_memory.h | 3 +
> arch/x86/include/asm/smp.h | 1 +
> arch/x86/include/asm/x86_init.h | 6 +-
> arch/x86/kernel/acpi/Makefile | 11 +-
> arch/x86/kernel/acpi/boot.c | 86 +-------
> arch/x86/kernel/acpi/madt_playdead.S | 28 +++
> arch/x86/kernel/acpi/madt_wakeup.c | 292 +++++++++++++++++++++++++++
> arch/x86/kernel/crash.c | 6 +
> arch/x86/kernel/e820.c | 9 +-
> arch/x86/kernel/process.c | 7 +
> arch/x86/kernel/reboot.c | 18 ++
> arch/x86/kernel/relocate_kernel_64.S | 5 +
> arch/x86/kernel/x86_init.c | 8 +-
> arch/x86/mm/ident_map.c | 73 +++++++
> arch/x86/mm/mem_encrypt_amd.c | 8 +-
> arch/x86/mm/pat/set_memory.c | 59 ++++--
> drivers/acpi/tables.c | 14 ++
> include/acpi/actbl2.h | 19 +-
> include/linux/cc_platform.h | 10 -
> include/linux/cpu.h | 2 +
> kernel/cpu.c | 12 +-
> 29 files changed, 663 insertions(+), 146 deletions(-)
> create mode 100644 arch/x86/kernel/acpi/madt_playdead.S
> create mode 100644 arch/x86/kernel/acpi/madt_wakeup.c
The cover letter mention the inclusion of the following patch - Keep
page tables that maps E820_TYPE_ACPI (Ashish)
But i don't this patch included in your patch-set.
Thanks, Ashish
next prev parent reply other threads:[~2024-04-04 18:27 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-03-25 10:38 [PATCHv9 00/17] x86/tdx: Add kexec support Kirill A. Shutemov
2024-03-25 10:38 ` [PATCHv9 01/17] x86/acpi: Extract ACPI MADT wakeup code into a separate file Kirill A. Shutemov
2024-03-25 10:38 ` [PATCHv9 02/17] x86/apic: Mark acpi_mp_wake_* variables as __ro_after_init Kirill A. Shutemov
2024-03-25 10:38 ` [PATCHv9 03/17] cpu/hotplug: Add support for declaring CPU offlining not supported Kirill A. Shutemov
2024-03-25 10:38 ` [PATCHv9 04/17] cpu/hotplug, x86/acpi: Disable CPU offlining for ACPI MADT wakeup Kirill A. Shutemov
2024-03-25 10:38 ` [PATCHv9 05/17] x86/kexec: Keep CR4.MCE set during kexec for TDX guest Kirill A. Shutemov
2024-03-29 15:21 ` Xiaoyao Li
2024-03-29 16:48 ` Kirill A. Shutemov
2024-04-02 15:42 ` Kirill A. Shutemov
2024-04-03 21:40 ` Huang, Kai
2024-04-04 9:32 ` Kirill A. Shutemov
2025-03-17 9:27 ` David Woodhouse
2025-03-17 11:03 ` Kirill A. Shutemov
2025-03-17 11:32 ` David Woodhouse
2025-03-17 11:59 ` Kirill A. Shutemov
2024-04-03 15:23 ` [PATCHv9.1 " Kirill A. Shutemov
2024-03-25 10:39 ` [PATCHv9 06/17] x86/mm: Make x86_platform.guest.enc_status_change_*() return errno Kirill A. Shutemov
2024-03-26 10:30 ` Huang, Kai
2024-03-27 12:34 ` [PATCHv9.1 " Kirill A. Shutemov
2024-03-25 10:39 ` [PATCHv9 07/17] x86/mm: Return correct level from lookup_address() if pte is none Kirill A. Shutemov
2024-03-25 10:39 ` [PATCHv9 08/17] x86/tdx: Account shared memory Kirill A. Shutemov
2024-03-25 15:43 ` Kuppuswamy Sathyanarayanan
2024-03-26 10:30 ` Huang, Kai
2024-03-25 10:39 ` [PATCHv9 09/17] x86/mm: Adding callbacks to prepare encrypted memory for kexec Kirill A. Shutemov
2024-04-03 22:33 ` Huang, Kai
2024-03-25 10:39 ` [PATCHv9 10/17] x86/tdx: Convert shared memory back to private on kexec Kirill A. Shutemov
2024-03-26 10:31 ` Huang, Kai
2024-03-25 10:39 ` [PATCHv9 11/17] x86/mm: Make e820_end_ram_pfn() cover E820_TYPE_ACPI ranges Kirill A. Shutemov
2024-03-25 10:39 ` [PATCHv9 12/17] x86/acpi: Rename fields in acpi_madt_multiproc_wakeup structure Kirill A. Shutemov
2024-03-25 10:39 ` [PATCHv9 13/17] x86/acpi: Do not attempt to bring up secondary CPUs in kexec case Kirill A. Shutemov
2024-03-25 10:39 ` [PATCHv9 14/17] x86/smp: Add smp_ops.stop_this_cpu() callback Kirill A. Shutemov
2024-03-25 10:39 ` [PATCHv9 15/17] x86/mm: Introduce kernel_ident_mapping_free() Kirill A. Shutemov
2024-03-25 10:39 ` [PATCHv9 16/17] x86/acpi: Add support for CPU offlining for ACPI MADT wakeup method Kirill A. Shutemov
2024-03-25 10:39 ` [PATCHv9 17/17] ACPI: tables: Print MULTIPROC_WAKEUP when MADT is parsed Kirill A. Shutemov
2024-03-26 10:32 ` Huang, Kai
2024-03-26 17:53 ` Kuppuswamy Sathyanarayanan
2024-04-04 18:27 ` Kalra, Ashish [this message]
2024-04-07 15:55 ` [PATCHv9 00/17] x86/tdx: Add kexec support Kirill A. Shutemov
2024-04-04 23:10 ` [PATCH v3 0/4] x86/snp: " Ashish Kalra
2024-04-04 23:11 ` [PATCH v3 1/4] efi/x86: skip efi_arch_mem_reserve() in case of kexec Ashish Kalra
2024-04-05 17:02 ` Kuppuswamy Sathyanarayanan
2024-04-04 23:11 ` [PATCH v3 2/4] x86/sev: add sev_es_enabled() function Ashish Kalra
2024-04-05 17:03 ` Kuppuswamy Sathyanarayanan
2024-04-04 23:11 ` [PATCH v3 3/4] x86/boot/compressed: Skip Video Memory access in Decompressor for SEV-ES/SNP Ashish Kalra
2024-04-05 17:05 ` Kuppuswamy Sathyanarayanan
2024-04-04 23:11 ` [PATCH v3 4/4] x86/snp: Convert shared memory back to private on kexec Ashish Kalra
2024-04-05 11:30 ` kernel test robot
2024-04-05 11:34 ` kernel test robot
2024-04-05 11:36 ` kernel test robot
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=bdeda1f9-b7d2-4bc3-ad20-342478be464b@amd.com \
--to=ashish.kalra@amd.com \
--cc=adrian.hunter@intel.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=peterz@infradead.org \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).