From: Mark Rutland <mark.rutland@arm.com>
To: Sneh Mankad <sneh.mankad@oss.qualcomm.com>
Cc: Sudeep Holla <sudeep.holla@kernel.org>,
Daniel Lezcano <daniel.lezcano@oss.qualcomm.com>,
Thomas Gleixner <tglx@kernel.org>,
Peter Zijlstra <peterz@infradead.org>,
"Rafael J. Wysocki" <rafael@kernel.org>,
Pavel Machek <pavel@kernel.org>, Len Brown <lenb@kernel.org>,
Catalin Marinas <catalin.marinas@arm.com>,
Lorenzo Pieralisi <lpieralisi@kernel.org>,
Will Deacon <will@kernel.org>,
linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-pm@vger.kernel.org, linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v2] arm64: Disallow disabling boot CPU based on config
Date: Tue, 21 Jul 2026 14:00:38 +0100 [thread overview]
Message-ID: <al9tdvOxYb83zBxd@J2N7QTR9R3.cambridge.arm.com> (raw)
In-Reply-To: <05081037-9ed8-4e0d-8480-cfa45e950727@oss.qualcomm.com>
On Tue, Jul 21, 2026 at 02:58:49PM +0530, Sneh Mankad wrote:
>
>
> On 06-Jul-26 2:46 PM, Sudeep Holla wrote:
> > On Sat, Jul 04, 2026 at 08:43:39AM +0200, Daniel Lezcano wrote:
> >>
> >> Hi Sudeep,
> >>
> >> Le 03/07/2026 à 17:51, Sudeep Holla a écrit :
> >>> (It is always good to cc all PSCI maintainer for any ARM64 CPU
> >>> hotpug/suspend related changes)
> >>>
> >>> On Fri, Jul 03, 2026 at 04:50:02PM +0530, Sneh Mankad wrote:
> >>>> The Qualcomm SoCs like LeMans, Monaco support suspend to ram which leads
> >>>> the SoC to ACPI S3 similar state where SoC is turned off and DDR is
> >>>> retained. The hardware design on these SoCs forces a constraint to suspend
> >>>> and resume the system on boot CPU / CPU0.
> >>>>
> >>> And you fail to explain why they have that constraint.
> >
> > I still need the above to understand the issue/constraint better.
>
> Above mentioned SoCs have boot CPU fixed to CPU0 in HW, whenever SoC boots up/cold boots it starts with CPU0.
>
> These SoCs support suspend to ram which leads to ACPI S3 similar state (where SoC is turned off and DDR is retained)
> PSCI SYSTEM_SUSPEND typically will be executed on boot core itself unless it is already offlined and non boot CPUs gets
> offlined using PSCI CPU_OFF.
>
> As HW constraint always makes the SoC to boot with boot CPU, consider a scenario, where
>
> Boot CPU is already disabled / offline => suspend to ram is triggered => SoC enters ACPI S3 similar state (only DDR is retained and rest of the SoC is off)
> <So far good>
>
> External wake up arrives (say power key press) => SoC starts booting with CPU0 => CPU0 becomes first one to "land" in kernel now.
IIUC you're saying that Linux calls SYSTEM_SUSPEND on a CPU other than
CPU0, and the FW returns to Linux on CPU0. The HW constraints are
irrelevant; FW should be handling that transparently from the PoV of
the OS, and even if it always physically boots on CPU0, it should go
wake the other CPU, then offline CPU0.
Look at the PSCI spec:
https://developer.arm.com/documentation/den0022/fb/
See section 5.20 ("SYSTEM_SUSPEND"), and in particular, the description in
5.20.1 ("Intended use"):
To use this API, a calling OS must power down all but one core through
calls to CPU_OFF. From this point on, the remaining core can call
SYSTEM_SUSPEND, passing the necessary entry_point_address and
context_id parameters to enable resumption on wakeup. A calling OS can
use the AFFINITY_INFO function to ensure that all cores are OFF prior
to calling SYSTEM_SUSPEND.
Note that there's no requirement that the OS calls this on a specific
CPU; just that all others are offline.
Further, note the sentence at the end of that section:
The core which calls SYSTEM_SUSPEND is the one that resumes execution
at the specified entry_point_address on wakeup.
... which means that waking up on another CPU is a violation of the
spec.
If we have to deal with broken FW, we can devise something, but this is
*certainly* a firmware bug.
Mark.
next prev parent reply other threads:[~2026-07-21 13:01 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-03 11:20 [PATCH v2] arm64: Disallow disabling boot CPU based on config Sneh Mankad
2026-07-03 14:28 ` Mark Rutland
2026-07-03 21:09 ` Thomas Gleixner
2026-07-21 6:59 ` Sneh Mankad
2026-07-21 13:04 ` Mark Rutland
2026-07-21 13:53 ` Sudeep Holla
2026-07-28 10:31 ` Ulf Hansson
2026-07-03 15:51 ` Sudeep Holla
2026-07-04 6:43 ` Daniel Lezcano
2026-07-06 9:16 ` Sudeep Holla
2026-07-09 13:00 ` Daniel Lezcano
2026-07-21 9:28 ` Sneh Mankad
2026-07-21 13:00 ` Mark Rutland [this message]
2026-07-21 14:05 ` Sudeep Holla
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=al9tdvOxYb83zBxd@J2N7QTR9R3.cambridge.arm.com \
--to=mark.rutland@arm.com \
--cc=catalin.marinas@arm.com \
--cc=daniel.lezcano@oss.qualcomm.com \
--cc=lenb@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=lpieralisi@kernel.org \
--cc=pavel@kernel.org \
--cc=peterz@infradead.org \
--cc=rafael@kernel.org \
--cc=sneh.mankad@oss.qualcomm.com \
--cc=sudeep.holla@kernel.org \
--cc=tglx@kernel.org \
--cc=will@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