From: Paul Jackson Clarify in comments that GFP_ATOMIC means both "don't sleep" and "use emergency pools", hence both ALLOC_DIP_ALOT and ALLOC_DIP_SOME. Signed-off-by: Paul Jackson Signed-off-by: Andrew Morton --- include/linux/gfp.h | 1 + mm/page_alloc.c | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff -puN include/linux/gfp.h~mm-gfp_atomic-comment include/linux/gfp.h --- 25/include/linux/gfp.h~mm-gfp_atomic-comment Mon Nov 14 14:43:20 2005 +++ 25-akpm/include/linux/gfp.h Mon Nov 14 14:43:20 2005 @@ -57,6 +57,7 @@ struct vm_area_struct; __GFP_NOFAIL|__GFP_NORETRY|__GFP_NO_GROW|__GFP_COMP| \ __GFP_NOMEMALLOC|__GFP_HARDWALL) +/* GFP_ATOMIC means both !wait (__GFP_WAIT not set) and use emergency pool */ #define GFP_ATOMIC (__GFP_HIGH) #define GFP_NOIO (__GFP_WAIT) #define GFP_NOFS (__GFP_WAIT | __GFP_IO) diff -puN mm/page_alloc.c~mm-gfp_atomic-comment mm/page_alloc.c --- 25/mm/page_alloc.c~mm-gfp_atomic-comment Mon Nov 14 14:43:20 2005 +++ 25-akpm/mm/page_alloc.c Mon Nov 14 14:43:20 2005 @@ -868,7 +868,8 @@ restart: * * The caller may dip into page reserves a bit more if the caller * cannot run direct reclaim, or if the caller has realtime scheduling - * policy or is asking for __GFP_HIGH memory. + * policy or is asking for __GFP_HIGH memory. GFP_ATOMIC requests will + * set both ALLOC_DIP_ALOT (!wait) and ALLOC_DIP_SOME (__GFP_HIGH). */ alloc_flags = 0; if ((unlikely(rt_task(p)) && !in_interrupt()) || !wait) _