From 76760c1f832f15a362e32c8a560de4e8ce1e52ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arve=20Hj=C3=B8nnev=C3=A5g?= Date: Fri, 13 Jan 2012 22:21:25 +0400 Subject: [PATCH] --- yaml --- r: 287427 b: refs/heads/master c: e5d7965f88a3755b2d0c54768a17032ab3a72819 h: refs/heads/master i: 287425: 714a69e483e1db9834b2609d2798bc8d6cfe6b49 287423: 72452ef6510d134770dbe90e61cbc854145db25d v: v3 --- [refs] | 2 +- trunk/drivers/staging/android/lowmemorykiller.c | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 9c2ea7d0c128..2123df7e1551 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 9545f86e3a3b6fac508dd43638d633d1a1567c26 +refs/heads/master: e5d7965f88a3755b2d0c54768a17032ab3a72819 diff --git a/trunk/drivers/staging/android/lowmemorykiller.c b/trunk/drivers/staging/android/lowmemorykiller.c index 2d8d2b796101..efc7dc1f4831 100644 --- a/trunk/drivers/staging/android/lowmemorykiller.c +++ b/trunk/drivers/staging/android/lowmemorykiller.c @@ -54,6 +54,7 @@ static size_t lowmem_minfree[6] = { static int lowmem_minfree_size = 4; static struct task_struct *lowmem_deathpending; +static unsigned long lowmem_deathpending_timeout; #define lowmem_print(level, x...) \ do { \ @@ -103,7 +104,8 @@ static int lowmem_shrink(struct shrinker *s, struct shrink_control *sc) * Note: Currently you need CONFIG_PROFILING * for this to work correctly. */ - if (lowmem_deathpending) + if (lowmem_deathpending && + time_before_eq(jiffies, lowmem_deathpending_timeout)) return 0; if (lowmem_adj_size < array_size) @@ -178,6 +180,7 @@ static int lowmem_shrink(struct shrinker *s, struct shrink_control *sc) */ #ifdef CONFIG_PROFILING lowmem_deathpending = selected; + lowmem_deathpending_timeout = jiffies + HZ; task_handoff_register(&task_nb); #endif force_sig(SIGKILL, selected);