Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1307646
| From | Lucas Stach <l.stach@pengutronix.de> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [PATCH 2/2] PM / Runtime: use deferrable timer for autosuspend |
| Date | 2016-01-12 18:20 +0100 |
| Message-ID | <qQaLV-3Xe-23@gated-at.bofh.it> (permalink) |
| References | <qQaLV-3Xe-25@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
The timeouts used in PM autosuspend are relatively coarse (the shortest I could find in a quick search through the kernel is 50ms). As they are already handled relaxed by saving the overhead of always rearming the timer by opportunistically suspending a device a bit early, it should not matter if the the timeout is missed slightly. By using a deferrable timer the CPU will not be woken just to handle the autosuspend timeout, but handling will be batched with other wakeups in the system. Signed-off-by: Lucas Stach <l.stach@pengutronix.de> --- drivers/base/power/runtime.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/base/power/runtime.c b/drivers/base/power/runtime.c index e1a10a03df8e..975a282600ff 100644 --- a/drivers/base/power/runtime.c +++ b/drivers/base/power/runtime.c @@ -1383,7 +1383,7 @@ void pm_runtime_init(struct device *dev) INIT_WORK(&dev->power.work, pm_runtime_work); dev->power.timer_expires = 0; - setup_timer(&dev->power.suspend_timer, pm_suspend_timer_fn, + setup_deferrable_timer(&dev->power.suspend_timer, pm_suspend_timer_fn, (unsigned long)dev); init_waitqueue_head(&dev->power.wait_queue); -- 2.6.4
Back to linux.kernel | Previous | Next — Next in thread | Find similar | Unroll thread
[PATCH 2/2] PM / Runtime: use deferrable timer for autosuspend Lucas Stach <l.stach@pengutronix.de> - 2016-01-12 18:20 +0100 Re: [PATCH 2/2] PM / Runtime: use deferrable timer for autosuspend Pavel Machek <pavel@ucw.cz> - 2016-01-13 20:10 +0100
csiph-web