[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250506052053.GD25533@ranerica-svr.sc.intel.com>
Date: Mon, 5 May 2025 22:20:53 -0700
From: Ricardo Neri <ricardo.neri-calderon@...ux.intel.com>
To: "Rafael J. Wysocki" <rafael@...nel.org>
Cc: x86@...nel.org, Krzysztof Kozlowski <krzk+dt@...nel.org>,
Conor Dooley <conor+dt@...nel.org>, Rob Herring <robh@...nel.org>,
"K. Y. Srinivasan" <kys@...rosoft.com>,
Haiyang Zhang <haiyangz@...rosoft.com>,
Wei Liu <wei.liu@...nel.org>, Dexuan Cui <decui@...rosoft.com>,
Michael Kelley <mhklinux@...look.com>, devicetree@...r.kernel.org,
Saurabh Sengar <ssengar@...ux.microsoft.com>,
Chris Oo <cho@...rosoft.com>, linux-hyperv@...r.kernel.org,
"Kirill A. Shutemov" <kirill.shutemov@...ux.intel.com>,
linux-acpi@...r.kernel.org, linux-kernel@...r.kernel.org,
"Ravi V. Shankar" <ravi.v.shankar@...el.com>,
Ricardo Neri <ricardo.neri@...el.com>
Subject: Re: [PATCH v3 01/13] x86/acpi: Add a helper function to setup the
wakeup mailbox
On Mon, May 05, 2025 at 11:50:08AM +0200, Rafael J. Wysocki wrote:
> On Sat, May 3, 2025 at 9:10 PM Ricardo Neri
> <ricardo.neri-calderon@...ux.intel.com> wrote:
> >
> > 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@...ux.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
Thank you for your feedback, Rafael!
>
> The #ifdef is only necessary if you are going to provide an
> alternative for builds in which the symbol is unset.
I see. All callers will be built only with CONFIG_X86_64. I will remove
this #ifdef.
>
> > +
> > #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);
>
> I'd prefer acpi_setup_mp_wakeup_mailbox().
Sure. This looks like a more appropriate name.
Thanks and BR,
Ricardo
Powered by blists - more mailing lists