Group high-order atomic allocations
commite010487dbe09d63cf916fd1b119d17abd0f48207
authorMel Gorman <mel@csn.ul.ie>
Tue, 16 Oct 2007 08:25:53 +0000 (16 01:25 -0700)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Tue, 16 Oct 2007 16:43:00 +0000 (16 09:43 -0700)
tree37c7f36913daf4bc0a68a1d0ba1cc30ee0d4e307
parente12ba74d8ff3e2f73a583500d7095e406df4d093
Group high-order atomic allocations

In rare cases, the kernel needs to allocate a high-order block of pages
without sleeping.  For example, this is the case with e1000 cards configured
to use jumbo frames.  Migrating or reclaiming pages in this situation is not
an option.

This patch groups these allocations together as much as possible by adding a
new MIGRATE_TYPE.  The MIGRATE_HIGHATOMIC type are exactly what they sound
like.  Care is taken that pages of other migrate types do not use the same
blocks as high-order atomic allocations.

Signed-off-by: Mel Gorman <mel@csn.ul.ie>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
include/linux/mmzone.h
mm/page_alloc.c