GFP_LEVEL_MASK is used to allow the pass through of page allocator flags. Currently these are
#define GFP_LEVEL_MASK (__GFP_WAIT|__GFP_HIGH|__GFP_IO|__GFP_FS| \ __GFP_COLD|__GFP_NOWARN|__GFP_REPEAT| \ __GFP_NOFAIL|__GFP_NORETRY|__GFP_COMP| \ __GFP_NOMEMALLOC|__GFP_HARDWALL|__GFP_THISNODE| __GFP_MOVABLE) Some of these flags control page allocator reclaim and fallback behavior. If they are specified for a slab alloc operation then they are effective if a new slab has to be allocated. These are 1. Reclaim control __GFP_WAIT __GFP_IO __GFP_FS __GFP_NOWARN __GFP_REPEAT __GFP_NOFAIL __GFP_NORETRY 2. Reserve control __GFP_HIGH __GFP_NOMEMALLOC 2. Fallback control __GFP_HARDWALL (cpuset contraints) __GFP_THISNODE (handled by SLAB on its own, SLUB/SLOB pass through) AFAIK these make sense. Then there are some other flags. I am wondering why they are in GFP_LEVEL_MASK? __GFP_COLD Does not make sense for slab allocators since we have to touch the page immediately. __GFP_COMP No effect. Added by the page allocator on their own if a higher order allocs are used for a slab. __GFP_MOVABLE The movability of a slab is determined by the options specified at kmem_cache_create time. If this is specified at kmalloc time then we will have some random slabs movable and others not. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/