summaryrefslogtreecommitdiffstats
path: root/kernel/power/process.c
diff options
context:
space:
mode:
authorLi Fei <fei.li@intel.com>2013-02-01 08:56:03 +0000
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2013-02-09 22:32:48 +0100
commit957d1282bb8c07e682e142b9237cd9fcb8348a0b (patch)
treea9b5690066c3268e7971c363b34f1a5deb664e2e /kernel/power/process.c
parent89a22dadb8810983868f5bbbc5530b27bf714a60 (diff)
downloadtalos-op-linux-957d1282bb8c07e682e142b9237cd9fcb8348a0b.tar.gz
talos-op-linux-957d1282bb8c07e682e142b9237cd9fcb8348a0b.zip
suspend: enable freeze timeout configuration through sys
At present, the value of timeout for freezing is 20s, which is meaningless in case that one thread is frozen with mutex locked and another thread is trying to lock the mutex, as this time of freezing will fail unavoidably. And if there is no new wakeup event registered, the system will waste at most 20s for such meaningless trying of freezing. With this patch, the value of timeout can be configured to smaller value, so such meaningless trying of freezing will be aborted in earlier time, and later freezing can be also triggered in earlier time. And more power will be saved. In normal case on mobile phone, it costs real little time to freeze processes. On some platform, it only costs about 20ms to freeze user space processes and 10ms to freeze kernel freezable threads. Signed-off-by: Liu Chuansheng <chuansheng.liu@intel.com> Signed-off-by: Li Fei <fei.li@intel.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'kernel/power/process.c')
-rw-r--r--kernel/power/process.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/kernel/power/process.c b/kernel/power/process.c
index d5a258b60c6f..98088e0e71e8 100644
--- a/kernel/power/process.c
+++ b/kernel/power/process.c
@@ -21,7 +21,7 @@
/*
* Timeout for stopping processes
*/
-#define TIMEOUT (20 * HZ)
+unsigned int __read_mostly freeze_timeout_msecs = 20 * MSEC_PER_SEC;
static int try_to_freeze_tasks(bool user_only)
{
@@ -36,7 +36,7 @@ static int try_to_freeze_tasks(bool user_only)
do_gettimeofday(&start);
- end_time = jiffies + TIMEOUT;
+ end_time = jiffies + msecs_to_jiffies(freeze_timeout_msecs);
if (!user_only)
freeze_workqueues_begin();
OpenPOWER on IntegriCloud