mirror of
https://github.com/torvalds/linux.git
synced 2026-06-08 22:52:35 +02:00
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. Change-Id: I709b1a4e1b1a1970e51d26a39fcbee57977bbc7f Signed-off-by: Arve Hjønnevåg <arve@android.com>
This commit is contained in:
parent
00b0a66a03
commit
280e506943
|
|
@ -53,6 +53,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 { \
|
||||
|
|
@ -99,7 +100,8 @@ static int lowmem_shrink(struct shrinker *s, int nr_to_scan, gfp_t gfp_mask)
|
|||
* this pass.
|
||||
*
|
||||
*/
|
||||
if (lowmem_deathpending)
|
||||
if (lowmem_deathpending &&
|
||||
time_before_eq(jiffies, lowmem_deathpending_timeout))
|
||||
return 0;
|
||||
|
||||
if (lowmem_adj_size < array_size)
|
||||
|
|
@ -168,6 +170,7 @@ static int lowmem_shrink(struct shrinker *s, int nr_to_scan, gfp_t gfp_mask)
|
|||
selected->pid, selected->comm,
|
||||
selected_oom_adj, selected_tasksize);
|
||||
lowmem_deathpending = selected;
|
||||
lowmem_deathpending_timeout = jiffies + HZ;
|
||||
force_sig(SIGKILL, selected);
|
||||
rem -= selected_tasksize;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user