From 6db5acce0e18dedcf0b3ff57415eaea45ec92636 Mon Sep 17 00:00:00 2001 From: NeilBrown Date: Mon, 7 Jul 2014 07:32:49 +0200 Subject: [PATCH] epoll.7: Document EPOLLWAKEUP Signed-off-by: Michael Kerrisk --- man7/epoll.7 | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/man7/epoll.7 b/man7/epoll.7 index a372d9727..31b1a8c8c 100644 --- a/man7/epoll.7 +++ b/man7/epoll.7 @@ -173,6 +173,35 @@ it is the caller's responsibility to rearm the file descriptor using .BR epoll_ctl (2) with .BR EPOLL_CTL_MOD . +.SS Interaction with autosleep +If the system is in +.B autosleep +mode via +.I /sys/power/autosleep +and an event happens which wakes the device from sleep, the device +driver will only keep the device awake until that event is queued. To +keep the device awake until the event has been processed it is +necessary to use +.B epoll +and the +.B EPOLLWAKEUP +flag. + +When this flag is set in the +.B events +field for a +.I struct epoll_event +then system will be kept awake from the moment the event is queued, +through the +.IR epoll_wait (2) +call which returns the event until the subsequent +.IR epoll_wait (2) +call. If the event should keep the system awake beyond that time, +the a separate +.I wake_lock +should be taken before the second +.IR epoll_wait (2) +call. .SS /proc interfaces The following interfaces can be used to limit the amount of kernel memory consumed by epoll: