[PATCH] cpuset: oom panic fix
cpuset_excl_nodes_overlap always returns 0 if current is exiting. This caused customer's systems to panic in the OOM killer when processes were having trouble getting memory for the final put_user in mm_release. Even though there were lots of processes to kill. Change to returning 1 in this case. This achieves parity with !CONFIG_CPUSETS case, and was observed to fix the problem. Signed-off-by: Nick Piggin <npiggin@suse.de> Acked-by: Paul Jackson <pj@sgi.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
Родитель
36920e069a
Коммит
0d673a5a47
|
@ -2420,7 +2420,7 @@ EXPORT_SYMBOL_GPL(cpuset_mem_spread_node);
|
|||
int cpuset_excl_nodes_overlap(const struct task_struct *p)
|
||||
{
|
||||
const struct cpuset *cs1, *cs2; /* my and p's cpuset ancestors */
|
||||
int overlap = 0; /* do cpusets overlap? */
|
||||
int overlap = 1; /* do cpusets overlap? */
|
||||
|
||||
task_lock(current);
|
||||
if (current->flags & PF_EXITING) {
|
||||
|
|
Загрузка…
Ссылка в новой задаче