Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

tools include: Replace tools linux/gfp_types.h with kernel version

Previously the header gfp_types.h in tools points to the gfp_types.h
in include/linux. This is a problem for tools like perf, since the
tools header is supposed to be independent of the kernel
headers.

Therefore this patch copies the kernel header to the tools header and
adds a header check.

Signed-off-by: Ian Rogers <irogers@google.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: André Almeida <andrealmeid@igalia.com>
Cc: Daniel Borkmann <daniel@iogearbox.net>
Cc: Darren Hart <dvhart@infradead.org>
Cc: David S. Miller <davem@davemloft.net>
Cc: Davidlohr Bueso <dave@stgolabs.net>
Cc: Ido Schimmel <idosch@nvidia.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Jamal Hadi Salim <jhs@mojatatu.com>
Cc: Jason Xing <kerneljasonxing@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Jonas Gottlieb <jonas.gottlieb@stackit.cloud>
Cc: Kan Liang <kan.liang@linux.intel.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Maurice Lambert <mauricelambert434@gmail.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Paolo Abeni <pabeni@redhat.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Petr Machata <petrm@nvidia.com>
Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Yury Norov <yury.norov@gmail.com>
Cc: Yuyang Huang <yuyanghuang@google.com>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

authored by

Ian Rogers and committed by
Arnaldo Carvalho de Melo
57a64919 f38ce020

+393 -1
+392 -1
tools/include/linux/gfp_types.h
··· 1 - #include "../../../include/linux/gfp_types.h" 1 + /* SPDX-License-Identifier: GPL-2.0 */ 2 + #ifndef __LINUX_GFP_TYPES_H 3 + #define __LINUX_GFP_TYPES_H 4 + 5 + #include <linux/bits.h> 6 + 7 + /* The typedef is in types.h but we want the documentation here */ 8 + #if 0 9 + /** 10 + * typedef gfp_t - Memory allocation flags. 11 + * 12 + * GFP flags are commonly used throughout Linux to indicate how memory 13 + * should be allocated. The GFP acronym stands for get_free_pages(), 14 + * the underlying memory allocation function. Not every GFP flag is 15 + * supported by every function which may allocate memory. Most users 16 + * will want to use a plain ``GFP_KERNEL``. 17 + */ 18 + typedef unsigned int __bitwise gfp_t; 19 + #endif 20 + 21 + /* 22 + * In case of changes, please don't forget to update 23 + * include/trace/events/mmflags.h and tools/perf/builtin-kmem.c 24 + */ 25 + 26 + enum { 27 + ___GFP_DMA_BIT, 28 + ___GFP_HIGHMEM_BIT, 29 + ___GFP_DMA32_BIT, 30 + ___GFP_MOVABLE_BIT, 31 + ___GFP_RECLAIMABLE_BIT, 32 + ___GFP_HIGH_BIT, 33 + ___GFP_IO_BIT, 34 + ___GFP_FS_BIT, 35 + ___GFP_ZERO_BIT, 36 + ___GFP_UNUSED_BIT, /* 0x200u unused */ 37 + ___GFP_DIRECT_RECLAIM_BIT, 38 + ___GFP_KSWAPD_RECLAIM_BIT, 39 + ___GFP_WRITE_BIT, 40 + ___GFP_NOWARN_BIT, 41 + ___GFP_RETRY_MAYFAIL_BIT, 42 + ___GFP_NOFAIL_BIT, 43 + ___GFP_NORETRY_BIT, 44 + ___GFP_MEMALLOC_BIT, 45 + ___GFP_COMP_BIT, 46 + ___GFP_NOMEMALLOC_BIT, 47 + ___GFP_HARDWALL_BIT, 48 + ___GFP_THISNODE_BIT, 49 + ___GFP_ACCOUNT_BIT, 50 + ___GFP_ZEROTAGS_BIT, 51 + #ifdef CONFIG_KASAN_HW_TAGS 52 + ___GFP_SKIP_ZERO_BIT, 53 + ___GFP_SKIP_KASAN_BIT, 54 + #endif 55 + #ifdef CONFIG_LOCKDEP 56 + ___GFP_NOLOCKDEP_BIT, 57 + #endif 58 + #ifdef CONFIG_SLAB_OBJ_EXT 59 + ___GFP_NO_OBJ_EXT_BIT, 60 + #endif 61 + ___GFP_LAST_BIT 62 + }; 63 + 64 + /* Plain integer GFP bitmasks. Do not use this directly. */ 65 + #define ___GFP_DMA BIT(___GFP_DMA_BIT) 66 + #define ___GFP_HIGHMEM BIT(___GFP_HIGHMEM_BIT) 67 + #define ___GFP_DMA32 BIT(___GFP_DMA32_BIT) 68 + #define ___GFP_MOVABLE BIT(___GFP_MOVABLE_BIT) 69 + #define ___GFP_RECLAIMABLE BIT(___GFP_RECLAIMABLE_BIT) 70 + #define ___GFP_HIGH BIT(___GFP_HIGH_BIT) 71 + #define ___GFP_IO BIT(___GFP_IO_BIT) 72 + #define ___GFP_FS BIT(___GFP_FS_BIT) 73 + #define ___GFP_ZERO BIT(___GFP_ZERO_BIT) 74 + /* 0x200u unused */ 75 + #define ___GFP_DIRECT_RECLAIM BIT(___GFP_DIRECT_RECLAIM_BIT) 76 + #define ___GFP_KSWAPD_RECLAIM BIT(___GFP_KSWAPD_RECLAIM_BIT) 77 + #define ___GFP_WRITE BIT(___GFP_WRITE_BIT) 78 + #define ___GFP_NOWARN BIT(___GFP_NOWARN_BIT) 79 + #define ___GFP_RETRY_MAYFAIL BIT(___GFP_RETRY_MAYFAIL_BIT) 80 + #define ___GFP_NOFAIL BIT(___GFP_NOFAIL_BIT) 81 + #define ___GFP_NORETRY BIT(___GFP_NORETRY_BIT) 82 + #define ___GFP_MEMALLOC BIT(___GFP_MEMALLOC_BIT) 83 + #define ___GFP_COMP BIT(___GFP_COMP_BIT) 84 + #define ___GFP_NOMEMALLOC BIT(___GFP_NOMEMALLOC_BIT) 85 + #define ___GFP_HARDWALL BIT(___GFP_HARDWALL_BIT) 86 + #define ___GFP_THISNODE BIT(___GFP_THISNODE_BIT) 87 + #define ___GFP_ACCOUNT BIT(___GFP_ACCOUNT_BIT) 88 + #define ___GFP_ZEROTAGS BIT(___GFP_ZEROTAGS_BIT) 89 + #ifdef CONFIG_KASAN_HW_TAGS 90 + #define ___GFP_SKIP_ZERO BIT(___GFP_SKIP_ZERO_BIT) 91 + #define ___GFP_SKIP_KASAN BIT(___GFP_SKIP_KASAN_BIT) 92 + #else 93 + #define ___GFP_SKIP_ZERO 0 94 + #define ___GFP_SKIP_KASAN 0 95 + #endif 96 + #ifdef CONFIG_LOCKDEP 97 + #define ___GFP_NOLOCKDEP BIT(___GFP_NOLOCKDEP_BIT) 98 + #else 99 + #define ___GFP_NOLOCKDEP 0 100 + #endif 101 + #ifdef CONFIG_SLAB_OBJ_EXT 102 + #define ___GFP_NO_OBJ_EXT BIT(___GFP_NO_OBJ_EXT_BIT) 103 + #else 104 + #define ___GFP_NO_OBJ_EXT 0 105 + #endif 106 + 107 + /* 108 + * Physical address zone modifiers (see linux/mmzone.h - low four bits) 109 + * 110 + * Do not put any conditional on these. If necessary modify the definitions 111 + * without the underscores and use them consistently. The definitions here may 112 + * be used in bit comparisons. 113 + */ 114 + #define __GFP_DMA ((__force gfp_t)___GFP_DMA) 115 + #define __GFP_HIGHMEM ((__force gfp_t)___GFP_HIGHMEM) 116 + #define __GFP_DMA32 ((__force gfp_t)___GFP_DMA32) 117 + #define __GFP_MOVABLE ((__force gfp_t)___GFP_MOVABLE) /* ZONE_MOVABLE allowed */ 118 + #define GFP_ZONEMASK (__GFP_DMA|__GFP_HIGHMEM|__GFP_DMA32|__GFP_MOVABLE) 119 + 120 + /** 121 + * DOC: Page mobility and placement hints 122 + * 123 + * Page mobility and placement hints 124 + * --------------------------------- 125 + * 126 + * These flags provide hints about how mobile the page is. Pages with similar 127 + * mobility are placed within the same pageblocks to minimise problems due 128 + * to external fragmentation. 129 + * 130 + * %__GFP_MOVABLE (also a zone modifier) indicates that the page can be 131 + * moved by page migration during memory compaction or can be reclaimed. 132 + * 133 + * %__GFP_RECLAIMABLE is used for slab allocations that specify 134 + * SLAB_RECLAIM_ACCOUNT and whose pages can be freed via shrinkers. 135 + * 136 + * %__GFP_WRITE indicates the caller intends to dirty the page. Where possible, 137 + * these pages will be spread between local zones to avoid all the dirty 138 + * pages being in one zone (fair zone allocation policy). 139 + * 140 + * %__GFP_HARDWALL enforces the cpuset memory allocation policy. 141 + * 142 + * %__GFP_THISNODE forces the allocation to be satisfied from the requested 143 + * node with no fallbacks or placement policy enforcements. 144 + * 145 + * %__GFP_ACCOUNT causes the allocation to be accounted to kmemcg. 146 + * 147 + * %__GFP_NO_OBJ_EXT causes slab allocation to have no object extension. 148 + */ 149 + #define __GFP_RECLAIMABLE ((__force gfp_t)___GFP_RECLAIMABLE) 150 + #define __GFP_WRITE ((__force gfp_t)___GFP_WRITE) 151 + #define __GFP_HARDWALL ((__force gfp_t)___GFP_HARDWALL) 152 + #define __GFP_THISNODE ((__force gfp_t)___GFP_THISNODE) 153 + #define __GFP_ACCOUNT ((__force gfp_t)___GFP_ACCOUNT) 154 + #define __GFP_NO_OBJ_EXT ((__force gfp_t)___GFP_NO_OBJ_EXT) 155 + 156 + /** 157 + * DOC: Watermark modifiers 158 + * 159 + * Watermark modifiers -- controls access to emergency reserves 160 + * ------------------------------------------------------------ 161 + * 162 + * %__GFP_HIGH indicates that the caller is high-priority and that granting 163 + * the request is necessary before the system can make forward progress. 164 + * For example creating an IO context to clean pages and requests 165 + * from atomic context. 166 + * 167 + * %__GFP_MEMALLOC allows access to all memory. This should only be used when 168 + * the caller guarantees the allocation will allow more memory to be freed 169 + * very shortly e.g. process exiting or swapping. Users either should 170 + * be the MM or co-ordinating closely with the VM (e.g. swap over NFS). 171 + * Users of this flag have to be extremely careful to not deplete the reserve 172 + * completely and implement a throttling mechanism which controls the 173 + * consumption of the reserve based on the amount of freed memory. 174 + * Usage of a pre-allocated pool (e.g. mempool) should be always considered 175 + * before using this flag. 176 + * 177 + * %__GFP_NOMEMALLOC is used to explicitly forbid access to emergency reserves. 178 + * This takes precedence over the %__GFP_MEMALLOC flag if both are set. 179 + */ 180 + #define __GFP_HIGH ((__force gfp_t)___GFP_HIGH) 181 + #define __GFP_MEMALLOC ((__force gfp_t)___GFP_MEMALLOC) 182 + #define __GFP_NOMEMALLOC ((__force gfp_t)___GFP_NOMEMALLOC) 183 + 184 + /** 185 + * DOC: Reclaim modifiers 186 + * 187 + * Reclaim modifiers 188 + * ----------------- 189 + * Please note that all the following flags are only applicable to sleepable 190 + * allocations (e.g. %GFP_NOWAIT and %GFP_ATOMIC will ignore them). 191 + * 192 + * %__GFP_IO can start physical IO. 193 + * 194 + * %__GFP_FS can call down to the low-level FS. Clearing the flag avoids the 195 + * allocator recursing into the filesystem which might already be holding 196 + * locks. 197 + * 198 + * %__GFP_DIRECT_RECLAIM indicates that the caller may enter direct reclaim. 199 + * This flag can be cleared to avoid unnecessary delays when a fallback 200 + * option is available. 201 + * 202 + * %__GFP_KSWAPD_RECLAIM indicates that the caller wants to wake kswapd when 203 + * the low watermark is reached and have it reclaim pages until the high 204 + * watermark is reached. A caller may wish to clear this flag when fallback 205 + * options are available and the reclaim is likely to disrupt the system. The 206 + * canonical example is THP allocation where a fallback is cheap but 207 + * reclaim/compaction may cause indirect stalls. 208 + * 209 + * %__GFP_RECLAIM is shorthand to allow/forbid both direct and kswapd reclaim. 210 + * 211 + * The default allocator behavior depends on the request size. We have a concept 212 + * of so-called costly allocations (with order > %PAGE_ALLOC_COSTLY_ORDER). 213 + * !costly allocations are too essential to fail so they are implicitly 214 + * non-failing by default (with some exceptions like OOM victims might fail so 215 + * the caller still has to check for failures) while costly requests try to be 216 + * not disruptive and back off even without invoking the OOM killer. 217 + * The following three modifiers might be used to override some of these 218 + * implicit rules. Please note that all of them must be used along with 219 + * %__GFP_DIRECT_RECLAIM flag. 220 + * 221 + * %__GFP_NORETRY: The VM implementation will try only very lightweight 222 + * memory direct reclaim to get some memory under memory pressure (thus 223 + * it can sleep). It will avoid disruptive actions like OOM killer. The 224 + * caller must handle the failure which is quite likely to happen under 225 + * heavy memory pressure. The flag is suitable when failure can easily be 226 + * handled at small cost, such as reduced throughput. 227 + * 228 + * %__GFP_RETRY_MAYFAIL: The VM implementation will retry memory reclaim 229 + * procedures that have previously failed if there is some indication 230 + * that progress has been made elsewhere. It can wait for other 231 + * tasks to attempt high-level approaches to freeing memory such as 232 + * compaction (which removes fragmentation) and page-out. 233 + * There is still a definite limit to the number of retries, but it is 234 + * a larger limit than with %__GFP_NORETRY. 235 + * Allocations with this flag may fail, but only when there is 236 + * genuinely little unused memory. While these allocations do not 237 + * directly trigger the OOM killer, their failure indicates that 238 + * the system is likely to need to use the OOM killer soon. The 239 + * caller must handle failure, but can reasonably do so by failing 240 + * a higher-level request, or completing it only in a much less 241 + * efficient manner. 242 + * If the allocation does fail, and the caller is in a position to 243 + * free some non-essential memory, doing so could benefit the system 244 + * as a whole. 245 + * 246 + * %__GFP_NOFAIL: The VM implementation _must_ retry infinitely: the caller 247 + * cannot handle allocation failures. The allocation could block 248 + * indefinitely but will never return with failure. Testing for 249 + * failure is pointless. 250 + * It _must_ be blockable and used together with __GFP_DIRECT_RECLAIM. 251 + * It should _never_ be used in non-sleepable contexts. 252 + * New users should be evaluated carefully (and the flag should be 253 + * used only when there is no reasonable failure policy) but it is 254 + * definitely preferable to use the flag rather than opencode endless 255 + * loop around allocator. 256 + * Allocating pages from the buddy with __GFP_NOFAIL and order > 1 is 257 + * not supported. Please consider using kvmalloc() instead. 258 + */ 259 + #define __GFP_IO ((__force gfp_t)___GFP_IO) 260 + #define __GFP_FS ((__force gfp_t)___GFP_FS) 261 + #define __GFP_DIRECT_RECLAIM ((__force gfp_t)___GFP_DIRECT_RECLAIM) /* Caller can reclaim */ 262 + #define __GFP_KSWAPD_RECLAIM ((__force gfp_t)___GFP_KSWAPD_RECLAIM) /* kswapd can wake */ 263 + #define __GFP_RECLAIM ((__force gfp_t)(___GFP_DIRECT_RECLAIM|___GFP_KSWAPD_RECLAIM)) 264 + #define __GFP_RETRY_MAYFAIL ((__force gfp_t)___GFP_RETRY_MAYFAIL) 265 + #define __GFP_NOFAIL ((__force gfp_t)___GFP_NOFAIL) 266 + #define __GFP_NORETRY ((__force gfp_t)___GFP_NORETRY) 267 + 268 + /** 269 + * DOC: Action modifiers 270 + * 271 + * Action modifiers 272 + * ---------------- 273 + * 274 + * %__GFP_NOWARN suppresses allocation failure reports. 275 + * 276 + * %__GFP_COMP address compound page metadata. 277 + * 278 + * %__GFP_ZERO returns a zeroed page on success. 279 + * 280 + * %__GFP_ZEROTAGS zeroes memory tags at allocation time if the memory itself 281 + * is being zeroed (either via __GFP_ZERO or via init_on_alloc, provided that 282 + * __GFP_SKIP_ZERO is not set). This flag is intended for optimization: setting 283 + * memory tags at the same time as zeroing memory has minimal additional 284 + * performance impact. 285 + * 286 + * %__GFP_SKIP_KASAN makes KASAN skip unpoisoning on page allocation. 287 + * Used for userspace and vmalloc pages; the latter are unpoisoned by 288 + * kasan_unpoison_vmalloc instead. For userspace pages, results in 289 + * poisoning being skipped as well, see should_skip_kasan_poison for 290 + * details. Only effective in HW_TAGS mode. 291 + */ 292 + #define __GFP_NOWARN ((__force gfp_t)___GFP_NOWARN) 293 + #define __GFP_COMP ((__force gfp_t)___GFP_COMP) 294 + #define __GFP_ZERO ((__force gfp_t)___GFP_ZERO) 295 + #define __GFP_ZEROTAGS ((__force gfp_t)___GFP_ZEROTAGS) 296 + #define __GFP_SKIP_ZERO ((__force gfp_t)___GFP_SKIP_ZERO) 297 + #define __GFP_SKIP_KASAN ((__force gfp_t)___GFP_SKIP_KASAN) 298 + 299 + /* Disable lockdep for GFP context tracking */ 300 + #define __GFP_NOLOCKDEP ((__force gfp_t)___GFP_NOLOCKDEP) 301 + 302 + /* Room for N __GFP_FOO bits */ 303 + #define __GFP_BITS_SHIFT ___GFP_LAST_BIT 304 + #define __GFP_BITS_MASK ((__force gfp_t)((1 << __GFP_BITS_SHIFT) - 1)) 305 + 306 + /** 307 + * DOC: Useful GFP flag combinations 308 + * 309 + * Useful GFP flag combinations 310 + * ---------------------------- 311 + * 312 + * Useful GFP flag combinations that are commonly used. It is recommended 313 + * that subsystems start with one of these combinations and then set/clear 314 + * %__GFP_FOO flags as necessary. 315 + * 316 + * %GFP_ATOMIC users can not sleep and need the allocation to succeed. A lower 317 + * watermark is applied to allow access to "atomic reserves". 318 + * The current implementation doesn't support NMI and few other strict 319 + * non-preemptive contexts (e.g. raw_spin_lock). The same applies to %GFP_NOWAIT. 320 + * 321 + * %GFP_KERNEL is typical for kernel-internal allocations. The caller requires 322 + * %ZONE_NORMAL or a lower zone for direct access but can direct reclaim. 323 + * 324 + * %GFP_KERNEL_ACCOUNT is the same as GFP_KERNEL, except the allocation is 325 + * accounted to kmemcg. 326 + * 327 + * %GFP_NOWAIT is for kernel allocations that should not stall for direct 328 + * reclaim, start physical IO or use any filesystem callback. It is very 329 + * likely to fail to allocate memory, even for very small allocations. 330 + * 331 + * %GFP_NOIO will use direct reclaim to discard clean pages or slab pages 332 + * that do not require the starting of any physical IO. 333 + * Please try to avoid using this flag directly and instead use 334 + * memalloc_noio_{save,restore} to mark the whole scope which cannot 335 + * perform any IO with a short explanation why. All allocation requests 336 + * will inherit GFP_NOIO implicitly. 337 + * 338 + * %GFP_NOFS will use direct reclaim but will not use any filesystem interfaces. 339 + * Please try to avoid using this flag directly and instead use 340 + * memalloc_nofs_{save,restore} to mark the whole scope which cannot/shouldn't 341 + * recurse into the FS layer with a short explanation why. All allocation 342 + * requests will inherit GFP_NOFS implicitly. 343 + * 344 + * %GFP_USER is for userspace allocations that also need to be directly 345 + * accessibly by the kernel or hardware. It is typically used by hardware 346 + * for buffers that are mapped to userspace (e.g. graphics) that hardware 347 + * still must DMA to. cpuset limits are enforced for these allocations. 348 + * 349 + * %GFP_DMA exists for historical reasons and should be avoided where possible. 350 + * The flags indicates that the caller requires that the lowest zone be 351 + * used (%ZONE_DMA or 16M on x86-64). Ideally, this would be removed but 352 + * it would require careful auditing as some users really require it and 353 + * others use the flag to avoid lowmem reserves in %ZONE_DMA and treat the 354 + * lowest zone as a type of emergency reserve. 355 + * 356 + * %GFP_DMA32 is similar to %GFP_DMA except that the caller requires a 32-bit 357 + * address. Note that kmalloc(..., GFP_DMA32) does not return DMA32 memory 358 + * because the DMA32 kmalloc cache array is not implemented. 359 + * (Reason: there is no such user in kernel). 360 + * 361 + * %GFP_HIGHUSER is for userspace allocations that may be mapped to userspace, 362 + * do not need to be directly accessible by the kernel but that cannot 363 + * move once in use. An example may be a hardware allocation that maps 364 + * data directly into userspace but has no addressing limitations. 365 + * 366 + * %GFP_HIGHUSER_MOVABLE is for userspace allocations that the kernel does not 367 + * need direct access to but can use kmap() when access is required. They 368 + * are expected to be movable via page reclaim or page migration. Typically, 369 + * pages on the LRU would also be allocated with %GFP_HIGHUSER_MOVABLE. 370 + * 371 + * %GFP_TRANSHUGE and %GFP_TRANSHUGE_LIGHT are used for THP allocations. They 372 + * are compound allocations that will generally fail quickly if memory is not 373 + * available and will not wake kswapd/kcompactd on failure. The _LIGHT 374 + * version does not attempt reclaim/compaction at all and is by default used 375 + * in page fault path, while the non-light is used by khugepaged. 376 + */ 377 + #define GFP_ATOMIC (__GFP_HIGH|__GFP_KSWAPD_RECLAIM) 378 + #define GFP_KERNEL (__GFP_RECLAIM | __GFP_IO | __GFP_FS) 379 + #define GFP_KERNEL_ACCOUNT (GFP_KERNEL | __GFP_ACCOUNT) 380 + #define GFP_NOWAIT (__GFP_KSWAPD_RECLAIM | __GFP_NOWARN) 381 + #define GFP_NOIO (__GFP_RECLAIM) 382 + #define GFP_NOFS (__GFP_RECLAIM | __GFP_IO) 383 + #define GFP_USER (__GFP_RECLAIM | __GFP_IO | __GFP_FS | __GFP_HARDWALL) 384 + #define GFP_DMA __GFP_DMA 385 + #define GFP_DMA32 __GFP_DMA32 386 + #define GFP_HIGHUSER (GFP_USER | __GFP_HIGHMEM) 387 + #define GFP_HIGHUSER_MOVABLE (GFP_HIGHUSER | __GFP_MOVABLE | __GFP_SKIP_KASAN) 388 + #define GFP_TRANSHUGE_LIGHT ((GFP_HIGHUSER_MOVABLE | __GFP_COMP | \ 389 + __GFP_NOMEMALLOC | __GFP_NOWARN) & ~__GFP_RECLAIM) 390 + #define GFP_TRANSHUGE (GFP_TRANSHUGE_LIGHT | __GFP_DIRECT_RECLAIM) 391 + 392 + #endif /* __LINUX_GFP_TYPES_H */
+1
tools/perf/check-headers.sh
··· 23 23 "include/linux/const.h" 24 24 "include/vdso/const.h" 25 25 "include/vdso/unaligned.h" 26 + "include/linux/gfp_types.h" 26 27 "include/linux/hash.h" 27 28 "include/linux/list-sort.h" 28 29 "include/uapi/linux/hw_breakpoint.h"