[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <b3de1e2b-973f-4b4a-83f3-6015808b3772@linaro.org>
Date: Fri, 11 Jul 2025 14:21:51 +0100
From: Tudor Ambarus <tudor.ambarus@...aro.org>
To: Jonathan Corbet <corbet@....net>, "Rafael J. Wysocki"
<rafael@...nel.org>, Pavel Machek <pavel@...nel.org>,
Len Brown <len.brown@...el.com>
Cc: linux-doc@...r.kernel.org, linux-kernel@...r.kernel.org,
linux-pm@...r.kernel.org, peter.griffin@...aro.org,
andre.draszik@...aro.org, willmcvicker@...gle.com, kernel-team@...roid.com,
rdunlap@...radead.org
Subject: Re: [PATCH v3] PM: add kernel parameter to disable asynchronous
suspend/resume
On 7/9/25 1:31 PM, Tudor Ambarus wrote:
> On some platforms, device dependencies are not properly represented by
> device links, which can cause issues when asynchronous power management
> is enabled. While it is possible to disable this via sysfs, doing so
> at runtime can race with the first system suspend event.
>
> This patch introduces a kernel command-line parameter, "pm_async", which
> can be set to "off" to globally disable asynchronous suspend and resume
> operations from early boot. It effectively provides a way to set the
> initial value of the existing pm_async sysfs knob at boot time. This
> offers a robust method to fall back to synchronous (sequential) operation,
> which can stabilize platforms with problematic dependencies and also
> serve as a useful debugging tool.
>
> The default behavior remains unchanged (asynchronous enabled). To disable
> it, boot the kernel with the "pm_async=off" parameter.
>
> Signed-off-by: Tudor Ambarus <tudor.ambarus@...aro.org>
> ---
> Dealing with the pixel6 downstream drivers to cope with the changes from
> https://lore.kernel.org/linux-pm/10629535.nUPlyArG6x@rjwysocki.net/.
>
> Similar to what people already reported it seems pixel6 lacks proper
> device links dependencies downstream causing i2c and spi client drivers
> to fail to suspend. Add kernel param to disable async suspend/resume.
> ---
> Changes in v3:
> - update documentation with "pm_async=" and "Format: off" (Randy)
> - reword documentation to make it clear "on" isn't a selectable option
> for pm_async because it's the default behavior.
> - Link to v2: https://lore.kernel.org/r/20250708-pm-async-off-v2-1-7fada54f01c0@linaro.org
>
> Changes in v2:
> - update the documentation and the commit message to describe that the
> "pm_async" kernel parameter provides a way to change the initial value
> of the existing /sys/power/pm_async sysfs knob.
> - Link to v1: https://lore.kernel.org/r/20250708-pm-async-off-v1-1-1b200cc03d9c@linaro.org
> ---
> Documentation/admin-guide/kernel-parameters.txt | 12 ++++++++++++
> kernel/power/main.c | 9 +++++++++
> 2 files changed, 21 insertions(+)
>
> diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
> index f1f2c0874da9ddfc95058c464fdf5dabaf0de713..06beacf208de3242a3b4bb2413ab6cd3e0083f15 100644
> --- a/Documentation/admin-guide/kernel-parameters.txt
> +++ b/Documentation/admin-guide/kernel-parameters.txt
> @@ -5000,6 +5000,18 @@
> that number, otherwise (e.g., 'pmu_override=on'), MMCR1
> remains 0.
>
> + pm_async= [PM]
> + Format: off
> + This parameter sets the initial value of the
> + /sys/power/pm_async sysfs knob at boot time.
> + If set to "off", disables asynchronous suspend and
> + resume of devices during system-wide power transitions.
> + This can be useful on platforms where device
> + dependencies are not well-defined, or for debugging
> + power management issues. Asynchronous operations are
> + enabled by default.
> +
> +
I just noticed an extra new line here, that checkpatch didn't catch.
Please let me know if I have to resubmit, or it can be amended
when/if applied.
Cheers,
ta
Powered by blists - more mailing lists