From: Ricardo Neri <ricardo.neri-calderon@linux.intel.com>
To: x86@kernel.org, Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>, Rob Herring <robh@kernel.org>,
"K. Y. Srinivasan" <kys@microsoft.com>,
Haiyang Zhang <haiyangz@microsoft.com>,
Wei Liu <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>,
Michael Kelley <mhklinux@outlook.com>
Cc: devicetree@vger.kernel.org,
Saurabh Sengar <ssengar@linux.microsoft.com>,
Chris Oo <cho@microsoft.com>,
linux-hyperv@vger.kernel.org,
"Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>,
linux-acpi@vger.kernel.org ,
linux-kernel@vger.kernel.org,
"Ravi V. Shankar" <ravi.v.shankar@intel.com>,
Ricardo Neri <ricardo.neri@intel.com>
Subject: [PATCH v3 01/13] x86/acpi: Add a helper function to setup the wakeup mailbox
Date: Sat, 3 May 2025 12:15:03 -0700 [thread overview]
Message-ID: <20250503191515.24041-2-ricardo.neri-calderon@linux.intel.com> (raw)
In-Reply-To: <20250503191515.24041-1-ricardo.neri-calderon@linux.intel.com>
In preparation to move the functionality to wake secondary CPUs up out of
the ACPI code, add a helper function that stores the physical address of
the mailbox and updates the wakeup_secondary_cpu_64() APIC callback.
There is a slight change in behavior: now the APIC callback is updated
before configuring CPU hotplug offline behavior. This is fine as the APIC
callback continues to be updated unconditionally, regardless of the
restriction on CPU offlining.
The wakeup mailbox is only supported for CONFIG_X86_64 and needed only with
CONFIG_SMP=y.
Signed-off-by: Ricardo Neri <ricardo.neri-calderon@linux.intel.com>
---
Changes since v2:
- Introduced this patch.
Changes since v1:
- N/A
---
arch/x86/include/asm/smp.h | 4 ++++
arch/x86/kernel/acpi/madt_wakeup.c | 10 +++++++---
2 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/arch/x86/include/asm/smp.h b/arch/x86/include/asm/smp.h
index 0c1c68039d6f..3622951d2ee0 100644
--- a/arch/x86/include/asm/smp.h
+++ b/arch/x86/include/asm/smp.h
@@ -146,6 +146,10 @@ static inline struct cpumask *cpu_l2c_shared_mask(int cpu)
return per_cpu(cpu_l2c_shared_map, cpu);
}
+#ifdef CONFIG_X86_64
+void setup_mp_wakeup_mailbox(u64 addr);
+#endif
+
#else /* !CONFIG_SMP */
#define wbinvd_on_cpu(cpu) wbinvd()
static inline int wbinvd_on_all_cpus(void)
diff --git a/arch/x86/kernel/acpi/madt_wakeup.c b/arch/x86/kernel/acpi/madt_wakeup.c
index f36f28405dcc..04de3db307de 100644
--- a/arch/x86/kernel/acpi/madt_wakeup.c
+++ b/arch/x86/kernel/acpi/madt_wakeup.c
@@ -227,7 +227,7 @@ int __init acpi_parse_mp_wake(union acpi_subtable_headers *header,
acpi_table_print_madt_entry(&header->common);
- acpi_mp_wake_mailbox_paddr = mp_wake->mailbox_address;
+ setup_mp_wakeup_mailbox(mp_wake->mailbox_address);
if (mp_wake->version >= ACPI_MADT_MP_WAKEUP_VERSION_V1 &&
mp_wake->header.length >= ACPI_MADT_MP_WAKEUP_SIZE_V1) {
@@ -243,7 +243,11 @@ int __init acpi_parse_mp_wake(union acpi_subtable_headers *header,
acpi_mp_disable_offlining(mp_wake);
}
- apic_update_callback(wakeup_secondary_cpu_64, acpi_wakeup_cpu);
-
return 0;
}
+
+void __init setup_mp_wakeup_mailbox(u64 mailbox_paddr)
+{
+ acpi_mp_wake_mailbox_paddr = mailbox_paddr;
+ apic_update_callback(wakeup_secondary_cpu_64, acpi_wakeup_cpu);
+}
--
2.43.0
next prev parent reply other threads:[~2025-05-03 19:10 UTC|newest]
Thread overview: 53+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-05-03 19:15 [PATCH v3 00/13] x86/hyperv/hv_vtl: Use a wakeup mailbox to boot secondary CPUs Ricardo Neri
2025-05-03 19:15 ` Ricardo Neri [this message]
2025-05-05 9:50 ` [PATCH v3 01/13] x86/acpi: Add a helper function to setup the wakeup mailbox Rafael J. Wysocki
2025-05-06 5:20 ` Ricardo Neri
2025-05-03 19:15 ` [PATCH v3 02/13] x86/acpi: Add a helper function to get a pointer to " Ricardo Neri
2025-05-05 9:55 ` Rafael J. Wysocki
2025-05-06 5:23 ` Ricardo Neri
2025-05-03 19:15 ` [PATCH v3 03/13] x86/acpi: Move acpi_wakeup_cpu() and helpers to smpboot.c Ricardo Neri
2025-05-05 10:03 ` Rafael J. Wysocki
2025-05-06 5:37 ` Ricardo Neri
2025-05-06 17:26 ` Rafael J. Wysocki
2025-05-07 11:22 ` Ricardo Neri
2025-05-03 19:15 ` [PATCH v3 04/13] dt-bindings: x86: Add CPU bindings for x86 Ricardo Neri
2025-05-03 20:33 ` Rob Herring (Arm)
2025-05-04 16:45 ` Krzysztof Kozlowski
2025-05-06 4:52 ` Ricardo Neri
2025-05-06 7:25 ` Krzysztof Kozlowski
2025-05-07 23:16 ` Ricardo Neri
2025-05-03 19:15 ` [PATCH v3 05/13] x86/dt: Parse the `enable-method` property of CPU nodes Ricardo Neri
2025-05-12 15:54 ` Rob Herring
2025-05-14 3:00 ` Ricardo Neri
2025-05-03 19:15 ` [PATCH v3 06/13] dt-bindings: reserved-memory: Wakeup Mailbox for Intel processors Ricardo Neri
2025-05-04 16:51 ` Krzysztof Kozlowski
2025-05-06 5:16 ` Ricardo Neri
2025-05-06 7:10 ` Krzysztof Kozlowski
2025-05-07 3:23 ` Ricardo Neri
2025-05-12 15:32 ` Rob Herring
2025-05-13 22:14 ` Ricardo Neri
2025-05-14 15:42 ` Rob Herring
2025-05-15 3:53 ` Ricardo Neri
2025-05-19 15:29 ` Rob Herring
2025-05-19 17:56 ` Ricardo Neri
2025-05-24 15:56 ` Ricardo Neri
2025-05-29 13:16 ` Rob Herring
2025-06-02 1:31 ` Ricardo Neri
2025-05-05 13:07 ` Rafael J. Wysocki
2025-05-06 5:50 ` Ricardo Neri
2025-05-06 14:00 ` Rafael J. Wysocki
2025-05-07 11:48 ` Ricardo Neri
2025-05-03 19:15 ` [PATCH v3 07/13] x86/dt: Parse the " Ricardo Neri
2025-05-03 19:15 ` [PATCH v3 08/13] x86/hyperv/vtl: Set real_mode_header in hv_vtl_init_platform() Ricardo Neri
2025-05-20 1:24 ` Michael Kelley
2025-05-03 19:15 ` [PATCH v3 09/13] x86/realmode: Make the location of the trampoline configurable Ricardo Neri
2025-05-20 1:30 ` Michael Kelley
2025-05-03 19:15 ` [PATCH v3 10/13] x86/hyperv/vtl: Setup the 64-bit trampoline for TDX guests Ricardo Neri
2025-05-20 1:31 ` Michael Kelley
2025-05-03 19:15 ` [PATCH v3 11/13] x86/smpboot: Add a helper get the address of the wakeup mailbox Ricardo Neri
2025-05-20 1:32 ` Michael Kelley
2025-05-03 19:15 ` [PATCH v3 12/13] x86/hyperv/vtl: Mark the wakeup mailbox page as private Ricardo Neri
2025-05-20 1:33 ` Michael Kelley
2025-05-03 19:15 ` [PATCH v3 13/13] x86/hyperv/vtl: Use the wakeup mailbox to boot secondary CPUs Ricardo Neri
2025-05-20 1:35 ` Michael Kelley
2025-05-24 0:31 ` Ricardo Neri
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=20250503191515.24041-2-ricardo.neri-calderon@linux.intel.com \
--to=ricardo.neri-calderon@linux.intel.com \
--cc=cho@microsoft.com \
--cc=conor+dt@kernel.org \
--cc=decui@microsoft.com \
--cc=devicetree@vger.kernel.org \
--cc=haiyangz@microsoft.com \
--cc=kirill.shutemov@linux.intel.com \
--cc=krzk+dt@kernel.org \
--cc=kys@microsoft.com \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-hyperv@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mhklinux@outlook.com \
--cc=ravi.v.shankar@intel.com \
--cc=ricardo.neri@intel.com \
--cc=robh@kernel.org \
--cc=ssengar@linux.microsoft.com \
--cc=wei.liu@kernel.org \
--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