8,6 → 8,11 |
|
struct vm_area_struct; |
|
/* |
* In case of changes, please don't forget to update |
* include/trace/events/mmflags.h and tools/perf/builtin-kmem.c |
*/ |
|
/* Plain integer GFP bitmasks. Do not use this directly. */ |
#define ___GFP_DMA 0x01u |
#define ___GFP_HIGHMEM 0x02u |
47,7 → 52,6 |
#define __GFP_DMA ((__force gfp_t)___GFP_DMA) |
#define __GFP_HIGHMEM ((__force gfp_t)___GFP_HIGHMEM) |
#define __GFP_DMA32 ((__force gfp_t)___GFP_DMA32) |
#define __GFP_MOVABLE ((__force gfp_t)___GFP_MOVABLE) /* Page is movable */ |
#define __GFP_MOVABLE ((__force gfp_t)___GFP_MOVABLE) /* ZONE_MOVABLE allowed */ |
#define GFP_ZONEMASK (__GFP_DMA|__GFP_HIGHMEM|__GFP_DMA32|__GFP_MOVABLE) |
|
100,8 → 104,6 |
* |
* __GFP_NOMEMALLOC is used to explicitly forbid access to emergency reserves. |
* This takes precedence over the __GFP_MEMALLOC flag if both are set. |
* |
* __GFP_NOACCOUNT ignores the accounting for kmemcg limit enforcement. |
*/ |
#define __GFP_ATOMIC ((__force gfp_t)___GFP_ATOMIC) |
#define __GFP_HIGH ((__force gfp_t)___GFP_HIGH) |
254,8 → 256,9 |
#define GFP_HIGHUSER_MOVABLE (GFP_HIGHUSER | __GFP_MOVABLE) |
#define GFP_TRANSHUGE ((GFP_HIGHUSER_MOVABLE | __GFP_COMP | \ |
__GFP_NOMEMALLOC | __GFP_NORETRY | __GFP_NOWARN) & \ |
~__GFP_KSWAPD_RECLAIM) |
~__GFP_RECLAIM) |
|
|
static inline bool gfpflags_allow_blocking(const gfp_t gfp_flags) |
{ |
return !!(gfp_flags & __GFP_DIRECT_RECLAIM); |
309,7 → 312,7 |
* 0xe => BAD (MOVABLE+DMA32+HIGHMEM) |
* 0xf => BAD (MOVABLE+DMA32+HIGHMEM+DMA) |
* |
* ZONES_SHIFT must be <= 2 on 32 bit platforms. |
* GFP_ZONES_SHIFT must be <= 2 on 32 bit platforms. |
*/ |
|
#if 16 * ZONES_SHIFT > BITS_PER_LONG |