Re: [PATCH] add __GFP_ZERO to GFP_LEVEL_MASK

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Christoph Lameter
Date: Tuesday, July 24, 2007 - 12:07 pm

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. 

-
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH] add __GFP_ZERP to GFP_LEVEL_MASK, Peter Zijlstra, (Mon Jul 23, 3:03 am)
Re: [PATCH] add __GFP_ZERP to GFP_LEVEL_MASK, Mel Gorman, (Mon Jul 23, 4:21 am)
Re: [PATCH] add __GFP_ZERO to GFP_LEVEL_MASK, Peter Zijlstra, (Mon Jul 23, 4:38 am)
Re: [PATCH] add __GFP_ZERO to GFP_LEVEL_MASK, Mel Gorman, (Mon Jul 23, 5:30 am)
Re: [PATCH] add __GFP_ZERP to GFP_LEVEL_MASK, Andrew Morton, (Mon Jul 23, 11:37 am)
Re: [PATCH] add __GFP_ZERP to GFP_LEVEL_MASK, Peter Zijlstra, (Mon Jul 23, 11:40 am)
Re: [PATCH] add __GFP_ZERP to GFP_LEVEL_MASK, Christoph Lameter, (Mon Jul 23, 2:43 pm)
Re: [PATCH] add __GFP_ZERP to GFP_LEVEL_MASK, Andrew Morton, (Mon Jul 23, 3:13 pm)
Re: [PATCH] add __GFP_ZERP to GFP_LEVEL_MASK, Linus Torvalds, (Mon Jul 23, 3:41 pm)
Re: [PATCH] add __GFP_ZERP to GFP_LEVEL_MASK, Christoph Lameter, (Mon Jul 23, 3:50 pm)
Re: [PATCH] add __GFP_ZERP to GFP_LEVEL_MASK, Andrew Morton, (Mon Jul 23, 3:56 pm)
Re: [PATCH] add __GFP_ZERP to GFP_LEVEL_MASK, Christoph Lameter, (Mon Jul 23, 4:00 pm)
Re: [PATCH] add __GFP_ZERO to GFP_LEVEL_MASK, Christoph Lameter, (Mon Jul 23, 4:17 pm)
Re: [PATCH] add __GFP_ZERO to GFP_LEVEL_MASK, Peter Zijlstra, (Mon Jul 23, 11:01 pm)
Re: [PATCH] add __GFP_ZERO to GFP_LEVEL_MASK, Peter Zijlstra, (Mon Jul 23, 11:48 pm)
Re: [PATCH] add __GFP_ZERO to GFP_LEVEL_MASK, Christoph Lameter, (Tue Jul 24, 12:09 am)
Re: [PATCH] add __GFP_ZERO to GFP_LEVEL_MASK, Christoph Lameter, (Tue Jul 24, 12:14 am)
Re: [PATCH] add __GFP_ZERO to GFP_LEVEL_MASK, Peter Zijlstra, (Tue Jul 24, 12:24 am)
Re: [PATCH] add __GFP_ZERO to GFP_LEVEL_MASK, Christoph Lameter, (Tue Jul 24, 12:35 am)
Re: [PATCH] add __GFP_ZERO to GFP_LEVEL_MASK, Christoph Lameter, (Tue Jul 24, 12:07 pm)
Re: [PATCH] add __GFP_ZERO to GFP_LEVEL_MASK, Andrew Morton, (Tue Jul 24, 12:25 pm)
Re: [PATCH] add __GFP_ZERO to GFP_LEVEL_MASK, Christoph Lameter, (Tue Jul 24, 12:36 pm)
Re: [PATCH] add __GFP_ZERO to GFP_LEVEL_MASK, Andrew Morton, (Tue Jul 24, 3:10 pm)
Re: [PATCH] add __GFP_ZERO to GFP_LEVEL_MASK, Christoph Lameter, (Tue Jul 24, 4:00 pm)
Re: [PATCH] add __GFP_ZERO to GFP_LEVEL_MASK, Andrew Morton, (Tue Jul 24, 4:12 pm)
Re: [PATCH] add __GFP_ZERO to GFP_LEVEL_MASK, Christoph Lameter, (Tue Jul 24, 4:58 pm)
Re: [PATCH] add __GFP_ZERO to GFP_LEVEL_MASK, Andrew Morton, (Tue Jul 24, 5:06 pm)
Re: [PATCH] add __GFP_ZERO to GFP_LEVEL_MASK, Mel Gorman, (Wed Jul 25, 6:06 am)