staging: android: lowmemorykiller: Don't wait more than one second for a process to die
If a process forked and the child process was killed by the lowmemorykiller, the lowmemory killer would be disabled until the parent process reaped the child or it died itself. Signed-off-by: Arve Hjønnevåg <arve@android.com> Signed-off-by: Anton Vorontsov <anton.vorontsov@linaro.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
9545f86e3a
commit
e5d7965f88
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user