page-flags.h (9de4f22a60f731943f050f4448bf2933ed3fa70b) page-flags.h (36e66c554b5c6a9d17a229faca7a61693527b0bd)
1/* SPDX-License-Identifier: GPL-2.0 */
2/*
3 * Macros for manipulating and testing page->flags
4 */
5
6#ifndef PAGE_FLAGS_H
7#define PAGE_FLAGS_H
8

--- 154 unchanged lines hidden (view full) ---

163 /* SLOB */
164 PG_slob_free = PG_private,
165
166 /* Compound pages. Stored in first tail page's flags */
167 PG_double_map = PG_private_2,
168
169 /* non-lru isolated movable page */
170 PG_isolated = PG_reclaim,
1/* SPDX-License-Identifier: GPL-2.0 */
2/*
3 * Macros for manipulating and testing page->flags
4 */
5
6#ifndef PAGE_FLAGS_H
7#define PAGE_FLAGS_H
8

--- 154 unchanged lines hidden (view full) ---

163 /* SLOB */
164 PG_slob_free = PG_private,
165
166 /* Compound pages. Stored in first tail page's flags */
167 PG_double_map = PG_private_2,
168
169 /* non-lru isolated movable page */
170 PG_isolated = PG_reclaim,
171
172 /* Only valid for buddy pages. Used to track pages that are reported */
173 PG_reported = PG_uptodate,
171};
172
173#ifndef __GENERATING_BOUNDS_H
174
175struct page; /* forward declaration */
176
177static inline struct page *compound_head(struct page *page)
178{

--- 253 unchanged lines hidden (view full) ---

432#if defined(CONFIG_IDLE_PAGE_TRACKING) && defined(CONFIG_64BIT)
433TESTPAGEFLAG(Young, young, PF_ANY)
434SETPAGEFLAG(Young, young, PF_ANY)
435TESTCLEARFLAG(Young, young, PF_ANY)
436PAGEFLAG(Idle, idle, PF_ANY)
437#endif
438
439/*
174};
175
176#ifndef __GENERATING_BOUNDS_H
177
178struct page; /* forward declaration */
179
180static inline struct page *compound_head(struct page *page)
181{

--- 253 unchanged lines hidden (view full) ---

435#if defined(CONFIG_IDLE_PAGE_TRACKING) && defined(CONFIG_64BIT)
436TESTPAGEFLAG(Young, young, PF_ANY)
437SETPAGEFLAG(Young, young, PF_ANY)
438TESTCLEARFLAG(Young, young, PF_ANY)
439PAGEFLAG(Idle, idle, PF_ANY)
440#endif
441
442/*
443 * PageReported() is used to track reported free pages within the Buddy
444 * allocator. We can use the non-atomic version of the test and set
445 * operations as both should be shielded with the zone lock to prevent
446 * any possible races on the setting or clearing of the bit.
447 */
448__PAGEFLAG(Reported, reported, PF_NO_COMPOUND)
449
450/*
440 * On an anonymous page mapped into a user virtual memory area,
441 * page->mapping points to its anon_vma, not to a struct address_space;
442 * with the PAGE_MAPPING_ANON bit set to distinguish it. See rmap.h.
443 *
444 * On an anonymous page in a VM_MERGEABLE area, if CONFIG_KSM is enabled,
445 * the PAGE_MAPPING_MOVABLE bit may be set along with the PAGE_MAPPING_ANON
446 * bit; and then page->mapping points, not to an anon_vma, but to a private
447 * structure which KSM associates with that merged page. See ksm.h.

--- 422 unchanged lines hidden ---
451 * On an anonymous page mapped into a user virtual memory area,
452 * page->mapping points to its anon_vma, not to a struct address_space;
453 * with the PAGE_MAPPING_ANON bit set to distinguish it. See rmap.h.
454 *
455 * On an anonymous page in a VM_MERGEABLE area, if CONFIG_KSM is enabled,
456 * the PAGE_MAPPING_MOVABLE bit may be set along with the PAGE_MAPPING_ANON
457 * bit; and then page->mapping points, not to an anon_vma, but to a private
458 * structure which KSM associates with that merged page. See ksm.h.

--- 422 unchanged lines hidden ---