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/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]