From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 283F634FF79; Fri, 3 Jul 2026 14:29:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=217.140.110.172 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783088941; cv=none; b=qJl9dyLNtlmeFU5thcXpy/7U+SEvEZIbhO6/43Ja3UV+UgYMzQw6jtK/xaDJjZ+YTAkO7NcRKyC9BEOIeH4Z7mqf+Pc2iKN+AtKZ4/LQCyippYJKNrN8RbL3YnD5TlHQKXMX16kVSknuWQ7UO8o0w+DRaPTc0D9nzYqiA+mtbNY= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783088941; c=relaxed/simple; bh=nv3+ueVUIqGIKl6icFEdZ93kbNEcdpBz4MyhQ3JR4po=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=S7LqaXHXqxFPPn2lSL8b3zaKaX2kT1ZE6OYfO116G/wqwyfKgbz9PuzwDurdCP5ag0xIelh76b7xaw7KwwthLmdmmBznthUXeTU0PCNoqV4YH6B1L6E07ZNOvIGnk6tBtNoUJBwJHvCXSAhxmQx9yYUF4bfEpQZLqjbxzqApFqI= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com; spf=pass smtp.mailfrom=arm.com; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.b=sgpwwyrA; arc=none smtp.client-ip=217.140.110.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=arm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.b="sgpwwyrA" Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 2D44B1EA6; Fri, 3 Jul 2026 07:28:55 -0700 (PDT) Received: from J2N7QTR9R3 (usa-sjc-imap-foss1.foss.arm.com [10.121.207.14]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 6C2863F905; Fri, 3 Jul 2026 07:28:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=arm.com; s=foss; t=1783088939; bh=nv3+ueVUIqGIKl6icFEdZ93kbNEcdpBz4MyhQ3JR4po=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=sgpwwyrA/S1qdbCYzbpunx+YSOi/jbPy7mBef/QF23F8VqcSZmHV4PamfxqlyayUB sq2PIBc7rIVuruoOoPtnyLYPY+bSDlQGmACa4RDkTcGSIIPiF6xcDbM7b2i+disHMG NSjNMHHWVx90IeXhriurCRV5kA4+6xDVTZCTt0Hs= Date: Fri, 3 Jul 2026 15:28:48 +0100 From: Mark Rutland To: Sneh Mankad Cc: Thomas Gleixner , Daniel Lezcano , Peter Zijlstra , "Rafael J. Wysocki" , Pavel Machek , Len Brown , Catalin Marinas , Will Deacon , 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 Message-ID: References: <20260703-disable_boot_cpu_offline-v2-1-782d16ff58c3@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-pm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20260703-disable_boot_cpu_offline-v2-1-782d16ff58c3@oss.qualcomm.com> On Fri, Jul 03, 2026 at 04:50:02PM +0530, Sneh Mankad wrote: > The Qualcomm SoCs like LeMans, Monaco Are those released products? Are those mobile phone parts, or somthing else? > 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. > > If CPU0 is already offline before starting suspend to ram the > freeze_secondary_cpus() picks alternate CPU as primary / last CPU and > proceed further to invoke PSCI SYSTEM_SUSPEND. > This leads to a system crash. Ok, so that's a firmware bug. Why does the FW permit CPU0 to be offlined in the first place if it can't handle this? What does PSCI_MIGRATE_INFO_TYPE report? Ideally it'd report Uniprocessor (UP) not migrate capable (1), which would prevent CPU_OFF on that CPU, and would force suspend to happen there... > In order to prevent such an issue introduce PM_SLEEP_SMP_CPU_ZERO_STRICT > config and when enabled prohibit the CPU0 from getting disabled. I don't think it makes sense for this to be a config option. This is a platform-specific property, and it's possible to build a kernel that boots on this platform and/or other platforms. > Signed-off-by: Sneh Mankad > --- > Changes in v2: > - Moved the check to arm64 specific code. > - Link to v1: https://lore.kernel.org/r/20260605-disable_boot_cpu_offline-v1-1-4c68fe1a6cf8@oss.qualcomm.com > --- > arch/arm64/Kconfig | 9 +++++++++ > arch/arm64/kernel/psci.c | 6 ++++++ > 2 files changed, 15 insertions(+) > > diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig > index fe60738e5943ba279e5571862423df4fed3db661..21697a535a25d286a2f8afe4921a41b13cc32c0a 100644 > --- a/arch/arm64/Kconfig > +++ b/arch/arm64/Kconfig > @@ -263,6 +263,15 @@ config ARM64 > help > ARM 64-bit (AArch64) Linux support. > > +config PM_SLEEP_SMP_CPU_ZERO_STRICT > + bool "Disallow boot CPU (CPU0) offline" > + depends on ARCH_QCOM Why can't others select this? > + depends on HOTPLUG_CPU > + depends on SUSPEND > + help > + Disallow boot CPU (CPU0) offline when the suspend_ops->enter() > + has to be executed by boot CPU. As above, I don't think this makse sense as a config option. Either we handle the FW bug, or we do not. Mark. > + > config RUSTC_SUPPORTS_ARM64 > def_bool y > depends on CPU_LITTLE_ENDIAN > diff --git a/arch/arm64/kernel/psci.c b/arch/arm64/kernel/psci.c > index fabd732d0a2dfee37074ef4ebb6ce5894871c8bd..4ad90ae6f8bacf0cbd3203d66580107d467ea232 100644 > --- a/arch/arm64/kernel/psci.c > +++ b/arch/arm64/kernel/psci.c > @@ -49,6 +49,12 @@ static int cpu_psci_cpu_boot(unsigned int cpu) > #ifdef CONFIG_HOTPLUG_CPU > static bool cpu_psci_cpu_can_disable(unsigned int cpu) > { > +#ifdef CONFIG_PM_SLEEP_SMP_CPU_ZERO_STRICT > + if (cpu == get_boot_cpu_id()) { > + pr_info("Disabling boot CPU is not supported\n"); > + return false; > + } > +#endif > return !psci_tos_resident_on(cpu); > } > > > --- > base-commit: ba3e43a9e601636f5edb54e259a74f96ca3b8fd8 > change-id: 20260603-disable_boot_cpu_offline-eb4f55ac96f2 > > Best regards, > -- > Sneh Mankad > >