From: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
To: 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>,
kexec@lists.infradead.org, linux-coco@lists.linux.dev,
linux-kernel@vger.kernel.org,
"Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
Subject: [PATCH 00/13] x86/tdx: Add kexec support
Date: Thu, 5 Oct 2023 16:13:49 +0300 [thread overview]
Message-ID: <20231005131402.14611-1-kirill.shutemov@linux.intel.com> (raw)
The patchset adds bits and pieces to get kexec (and crashkernel) work on
TDX guest.
They bring kexec support to the point when we can start the new kernel,
but it will only be able to use single CPU. It should be enough to cover
the most common case: crashkernel.
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.
Please review. I would be glad for any feedback.
[1] https://lore.kernel.org/all/13356251.uLZWGnKmhe@kreacher
Kirill A. Shutemov (13):
x86/acpi: Extract ACPI MADT wakeup code into a separate file
kernel/cpu: Add support for declaring CPU hotplug not supported
cpu/hotplug, x86/acpi: Disable CPU hotplug for ACPI MADT wakeup
x86/kvm: Do not try to disable kvmclock if it was not enabled
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
KVM: x86: Add config option to gate emergency virt callback support
x86/tdx: Account shared memory
x86/tdx: Convert shared memory back to private on kexec
x86/mm: Make e820_end_ram_pfn() cover E820_TYPE_ACPI ranges
x86/acpi: Do not attempt to bring up secondary CPUs in kexec case
x86/acpi: Add support for CPU offlining for ACPI MADT wakeup method
arch/x86/Kconfig | 8 +
arch/x86/coco/core.c | 1 -
arch/x86/coco/tdx/kexec.c | 0
arch/x86/coco/tdx/tdx.c | 220 +++++++++++++++++++++-
arch/x86/hyperv/ivm.c | 9 +-
arch/x86/include/asm/acpi.h | 5 +
arch/x86/include/asm/pgtable_types.h | 1 +
arch/x86/include/asm/reboot.h | 4 +-
arch/x86/include/asm/x86_init.h | 4 +-
arch/x86/kernel/acpi/Makefile | 11 +-
arch/x86/kernel/acpi/boot.c | 88 +--------
arch/x86/kernel/acpi/madt.S | 28 +++
arch/x86/kernel/acpi/madt_wakeup.c | 262 +++++++++++++++++++++++++++
arch/x86/kernel/e820.c | 9 +-
arch/x86/kernel/kvmclock.c | 9 +-
arch/x86/kernel/reboot.c | 4 +-
arch/x86/kernel/relocate_kernel_64.S | 5 +
arch/x86/kernel/x86_init.c | 4 +-
arch/x86/kvm/Kconfig | 5 +
arch/x86/mm/mem_encrypt_amd.c | 8 +-
arch/x86/mm/pat/set_memory.c | 17 +-
include/acpi/actbl2.h | 19 +-
include/linux/cc_platform.h | 10 -
include/linux/cpu.h | 2 +
kernel/cpu.c | 17 +-
25 files changed, 604 insertions(+), 146 deletions(-)
create mode 100644 arch/x86/coco/tdx/kexec.c
create mode 100644 arch/x86/kernel/acpi/madt.S
create mode 100644 arch/x86/kernel/acpi/madt_wakeup.c
--
2.41.0
_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec
next reply other threads:[~2023-10-05 13:16 UTC|newest]
Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-05 13:13 Kirill A. Shutemov [this message]
2023-10-05 13:13 ` [PATCH 01/13] x86/acpi: Extract ACPI MADT wakeup code into a separate file Kirill A. Shutemov
2023-10-06 10:22 ` Huang, Kai
2023-10-06 11:59 ` kirill.shutemov
2023-10-06 18:33 ` Kuppuswamy Sathyanarayanan
2023-10-09 13:32 ` Kirill A. Shutemov
2023-10-05 13:13 ` [PATCH 03/13] cpu/hotplug, x86/acpi: Disable CPU hotplug for ACPI MADT wakeup Kirill A. Shutemov
2023-10-10 10:24 ` Huang, Kai
2023-10-20 11:58 ` Huang, Kai
2023-10-20 12:42 ` kirill.shutemov
2023-10-10 13:39 ` Kuppuswamy Sathyanarayanan
2023-10-11 13:09 ` Thomas Gleixner
2023-10-05 13:13 ` [PATCH 04/13] x86/kvm: Do not try to disable kvmclock if it was not enabled Kirill A. Shutemov
2023-10-06 14:36 ` Sean Christopherson
2023-10-06 14:50 ` Kirill A. Shutemov
2023-10-10 13:53 ` Kuppuswamy Sathyanarayanan
2023-10-11 13:11 ` Kirill A. Shutemov
2023-10-05 13:13 ` [PATCH 05/13] x86/kexec: Keep CR4.MCE set during kexec for TDX guest Kirill A. Shutemov
2023-10-09 12:30 ` Huang, Kai
2023-10-09 13:32 ` kirill.shutemov
2023-10-05 13:13 ` [PATCH 07/13] x86/mm: Return correct level from lookup_address() if pte is none Kirill A. Shutemov
2023-10-05 13:13 ` [PATCH 08/13] KVM: x86: Add config option to gate emergency virt callback support Kirill A. Shutemov
2023-10-05 13:13 ` [PATCH 09/13] x86/tdx: Account shared memory Kirill A. Shutemov
2023-10-10 10:05 ` Huang, Kai
2023-10-11 13:14 ` kirill.shutemov
2023-10-05 13:14 ` [PATCH 11/13] x86/mm: Make e820_end_ram_pfn() cover E820_TYPE_ACPI ranges Kirill A. Shutemov
2023-10-05 13:14 ` [PATCH 12/13] x86/acpi: Do not attempt to bring up secondary CPUs in kexec case Kirill A. Shutemov
2023-10-20 3:29 ` Huang, Kai
2023-10-20 9:29 ` kirill.shutemov
[not found] ` <20231005131402.14611-11-kirill.shutemov@linux.intel.com>
2023-10-05 18:41 ` [PATCH 10/13] x86/tdx: Convert shared memory back to private on kexec Kalra, Ashish
2023-10-05 21:28 ` Kirill A. Shutemov
2023-10-05 22:01 ` Kalra, Ashish
2023-10-05 22:28 ` Kirill A. Shutemov
2023-10-06 19:24 ` Kalra, Ashish
2023-10-20 9:21 ` Kirill A. Shutemov
2023-10-20 9:39 ` Kirill A. Shutemov
2023-10-06 14:58 ` Sean Christopherson
2023-10-06 15:11 ` Kirill A. Shutemov
2023-10-06 22:15 ` Kalra, Ashish
2023-10-08 8:35 ` Baoquan He
2023-10-09 13:35 ` Kirill A. Shutemov
2023-10-08 23:49 ` [PATCH 00/13] x86/tdx: Add kexec support Baoquan He
2023-10-09 13:36 ` Kirill A. Shutemov
2023-10-09 14:13 ` Baoquan He
[not found] ` <20231005131402.14611-3-kirill.shutemov@linux.intel.com>
2023-10-10 13:35 ` [PATCH 02/13] kernel/cpu: Add support for declaring CPU hotplug not supported Kuppuswamy Sathyanarayanan
2023-10-11 13:07 ` Kirill A. Shutemov
2023-10-11 13:08 ` Thomas Gleixner
[not found] ` <20231005131402.14611-14-kirill.shutemov@linux.intel.com>
2023-10-20 9:49 ` [PATCH 13/13] x86/acpi: Add support for CPU offlining for ACPI MADT wakeup method Huang, Kai
2023-10-20 10:42 ` kirill.shutemov
2023-10-20 11:21 ` Huang, Kai
2023-10-20 12:34 ` kirill.shutemov
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=20231005131402.14611-1-kirill.shutemov@linux.intel.com \
--to=kirill.shutemov@linux.intel.com \
--cc=adrian.hunter@intel.com \
--cc=bp@alien8.de \
--cc=dave.hansen@linux.intel.com \
--cc=elena.reshetova@intel.com \
--cc=jun.nakajima@intel.com \
--cc=kexec@lists.infradead.org \
--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=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 read-only IMAP folder(s) and NNTP newsgroup(s).