Huge page coverage should obviously have less priority than the continued execution of a process. Never kill a process when charging it a huge page fails. Instead, give up after the first failed reclaim attempt and fall back to regular pages. Signed-off-by: Johannes Weiner <hannes@xxxxxxxxxxx> --- mm/memcontrol.c | 7 +++++++ 1 files changed, 7 insertions(+), 0 deletions(-) diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 17c4e36..2945649 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -1890,6 +1890,13 @@ static int __mem_cgroup_try_charge(struct mm_struct *mm, int csize = max(CHARGE_SIZE, (unsigned long) page_size); /* + * Do not OOM on huge pages. Fall back to regular pages after + * the first failed reclaim attempt. + */ + if (page_size > PAGE_SIZE) + oom = false; + + /* * Unlike gloval-vm's OOM-kill, we're not in memory shortage * in system level. So, allow to go ahead dying process in addition to * MEMDIE process. -- 1.7.3.5 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom policy in Canada: sign http://dissolvethecrtc.ca/ Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>