[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20240214092902.1908443-1-pranavpp@google.com>
Date: Wed, 14 Feb 2024 09:29:00 +0000
From: Pranav Prasad <pranavpp@...gle.com>
To: tglx@...utronix.de, jstultz@...gle.com, sboyd@...nel.org
Cc: linux-kernel@...r.kernel.org, krossmo@...gle.com,
Pranav Prasad <pranavpp@...gle.com>
Subject: [PATCH v3 0/2] alarmtimer: Rework the suspend flow in alarmtimer
Hi!
During the driver suspend phase of kernel suspend, alarmtimer's suspend
callback is invoked and it identifies the earliest next wakeup alarm and
programs that into the HW real time clock (RTC). However, there is an
exception to this process. If the next alarm is within the next 2 seconds,
the alarmtimer driver fails to suspend. In this case, a non-trivial amount
of power is spent to freeze and unfreeze all userspace processes and to
suspend and resume a number of devices. In the vast majority of cases, the
imminent alarm that caused the failure was likely already scheduled before
suspend even started. This provides an opportunity to reduce power
consumption if the suspend failure decision is made earlier in the suspend
flow, before the unnecessary extra work is done.
This patch series aims to achieve a kernel suspend flow in which the check
for an imminent alarm is performed early during the suspend prepare phase.
Changes in v3 from v2:
- Reversed the order of patches
- Formatted variable declarations
- Moved the RTC device check out of alarmtimer_get_soonest()
- Reinstated the check for pending alarm in alarmtimer_suspend()
Changes in v2 from v1:
- Moved the pm_wakeup_event call to the PM notifier
- Added a check for RTC device in the PM notifier
Pranav Prasad (2):
alarmtimer: Add PM notifier to check early for imminent alarm
alarmtimer: Create sysfs to make alarm check window configurable
kernel/time/alarmtimer.c | 164 +++++++++++++++++++++++++++++++++------
1 file changed, 140 insertions(+), 24 deletions(-)
--
2.43.0.687.g38aa6559b0-goog
Powered by blists - more mailing lists