[PATCH v1 0/5] PM: Reduce spurious wakeups

From: Dai Junbing
Date: Tue Jul 29 2025 - 21:49:54 EST


During system suspend/resume, processes in TASK_INTERRUPTIBLE sleep may
be spuriously woken, causing measurable overhead. When many processes
are in TASK_INTERRUPTIBLE state during frequent suspend/resume cycles,
this overhead becomes non-trivial - observed particularly on Android
mobile devices.

Power instrumentation on my Android test device revealed numerous
processes blocked in:
- epoll_wait(2)
- select(2)
- poll(2)
These processes experienced spurious wakeups during suspend/resume,
contributing to power consumption.

After optimizing these wakeups (driver modifications handled outside
this patchset), measurements show 58% reduction in energy consumption
during suspend/resume cycles.

Therefore, minimizing spurious wakeups during suspend/resume transitions
is essential for mobile power efficiency. Please review this series..


Dai Junbing (5):
epoll: Make epoll_wait sleep freezable
select/poll: Make sleep freezable
pipe: Add TASK_FREEZABLE to read and open sleeps
fuse: Add TASK_FREEZABLE to device read operations
jbd2: Add TASK_FREEZABLE to kjournald2 thread

fs/eventpoll.c | 2 +-
fs/fuse/dev.c | 2 +-
fs/jbd2/journal.c | 2 +-
fs/pipe.c | 4 ++--
fs/select.c | 4 ++--
5 files changed, 7 insertions(+), 7 deletions(-)

--
2.25.1