Re: [PATCH 3/6] mm, PM/Freezer: Disable OOM killer when tasks arefrozen

From: David Rientjes
Date: Wed May 13 2009 - 18:35:51 EST


On Wed, 13 May 2009, Rafael J. Wysocki wrote:

> Index: linux-2.6/mm/page_alloc.c
> ===================================================================
> --- linux-2.6.orig/mm/page_alloc.c
> +++ linux-2.6/mm/page_alloc.c
> @@ -175,6 +175,8 @@ static void set_pageblock_migratetype(st
> PB_migrate, PB_migrate_end);
> }
>
> +bool oom_killer_disabled __read_mostly;
> +
> #ifdef CONFIG_DEBUG_VM
> static int page_outside_zone_boundaries(struct zone *zone, struct page *page)
> {
> @@ -1600,6 +1602,9 @@ nofail_alloc:
> if (page)
> goto got_pg;
> } else if ((gfp_mask & __GFP_FS) && !(gfp_mask & __GFP_NORETRY)) {
> + if (oom_killer_disabled)
> + goto nopage;
> +
> if (!try_set_zone_oom(zonelist, gfp_mask)) {
> schedule_timeout_uninterruptible(1);
> goto restart;

This allows __GFP_NOFAIL allocations to fail.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/