Hi,
Please review the patches when you have time.
On 11/7/25 11:44 PM, Muhammad Usama Anjum wrote:
> On a normal laptop/PC, the hibernation takes 15-20 seconds which is
> considerable time. Once hibernation is triggered from command line or by
> some GUI option, the hibernation cannot be cancelled until completed.
> Its not a blocker, but poor user experience.
>
> When power button is pressed during hibernation, it generates interrupt
> and then the event is routed to userspace. If systemd is being used, the
> logind handles these events and performs the specific action.
>
> During hibernation, the first stage is to freeze the userspace. Hence
> even if the power button is pressed, it doesn't aborts the hibernation
> as user space daemon is frozen.
>
> My device takes ~19 seconds to hibernate. When I was testing hibernation
> using rtcwake with timeout of 10 seconds, I found out that hibernation
> gets canceled around 10 seconds mark when the interrupt fires.
>
> In this series, the idea is to find a way to cancel the hibernation.
> With this series applied, the hibernation gets cancelled gracefully.
>
> The hibernation cancellation support isn't present in very last stage
> just before power_down(). I've not been able to handle the error paths
> correctly there yet as logs aren't available from that stage. I'll send
> that patch separately when it works.
>
> Cc: rafael@kernel.org
> Cc: superm1@kernel.org
> ---
> Changes since RFC:
> - Update description of patches
> - Use pm_sleep_transition_in_progress() instead of
> hibernation_in_progress()
>
> Muhammad Usama Anjum (4):
> PM: hibernate: export pm_sleep_transition_in_progress()
> ACPI: button: Cancel hibernation if button is pressed during
> hibernation
> Input: Ignore the KEY_POWER events if hibernation is in progress
> PM: sleep: clear pm_abort_suspend at suspend
>
> drivers/acpi/button.c | 12 +++++++++---
> drivers/base/power/main.c | 2 ++
> drivers/input/input.c | 6 ++++++
> kernel/cpu.c | 1 +
> kernel/power/hibernate.c | 5 ++++-
> kernel/power/main.c | 1 +
> kernel/power/process.c | 1 +
> 7 files changed, 24 insertions(+), 4 deletions(-)
>
--
---
Thanks,
Usama