From: Muhammad Usama Anjum <usama.anjum@collabora.com>
To: "Rafael J. Wysocki" <rafael@kernel.org>,
Len Brown <lenb@kernel.org>, Pavel Machek <pavel@kernel.org>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Danilo Krummrich <dakr@kernel.org>,
Dmitry Torokhov <dmitry.torokhov@gmail.com>,
Thomas Gleixner <tglx@linutronix.de>,
Peter Zijlstra <peterz@infradead.org>,
linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-pm@vger.kernel.org, linux-input@vger.kernel.org
Cc: Muhammad Usama Anjum <usama.anjum@collabora.com>,
kernel@collabora.com, superm1@kernel.org
Subject: [RFC 0/4] PM: Hibernate: Add hibernation cancellation support
Date: Sat, 18 Oct 2025 19:21:03 +0500 [thread overview]
Message-ID: <20251018142114.897445-1-usama.anjum@collabora.com> (raw)
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.
Muhammad Usama Anjum (4):
PM: hibernate: export hibernation_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 ++++++
include/linux/suspend.h | 2 ++
kernel/cpu.c | 1 +
kernel/power/hibernate.c | 6 +++++-
kernel/power/process.c | 1 +
7 files changed, 26 insertions(+), 4 deletions(-)
--
2.47.3
next reply other threads:[~2025-10-18 14:22 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-10-18 14:21 Muhammad Usama Anjum [this message]
2025-10-18 14:21 ` [RFC 1/4] PM: hibernate: export hibernation_in_progress() Muhammad Usama Anjum
2025-10-21 21:07 ` Mario Limonciello (AMD) (kernel.org)
2025-10-22 9:53 ` Rafael J. Wysocki
2025-10-22 16:27 ` Muhammad Usama Anjum
2025-10-18 14:21 ` [RFC 2/4] ACPI: button: Cancel hibernation if button is pressed during hibernation Muhammad Usama Anjum
2025-10-21 21:12 ` Mario Limonciello (AMD) (kernel.org)
2025-10-18 14:21 ` [RFC 3/4] Input: Ignore the KEY_POWER events if hibernation is in progress Muhammad Usama Anjum
2025-10-21 21:14 ` Mario Limonciello (AMD) (kernel.org)
2025-10-22 16:33 ` Muhammad Usama Anjum
2025-10-22 16:40 ` Mario Limonciello
2025-10-18 14:21 ` [RFC 4/4] PM: sleep: clear pm_abort_suspend at suspend Muhammad Usama Anjum
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=20251018142114.897445-1-usama.anjum@collabora.com \
--to=usama.anjum@collabora.com \
--cc=dakr@kernel.org \
--cc=dmitry.torokhov@gmail.com \
--cc=gregkh@linuxfoundation.org \
--cc=kernel@collabora.com \
--cc=lenb@kernel.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-input@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=pavel@kernel.org \
--cc=peterz@infradead.org \
--cc=rafael@kernel.org \
--cc=superm1@kernel.org \
--cc=tglx@linutronix.de \
/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;
as well as URLs for NNTP newsgroup(s).