/kernel/linux/linux-6.6/include/linux/ |
H A D | page_idle.h | 7 #include <linux/page_ext.h> 18 struct page_ext *page_ext = page_ext_get(&folio->page); in folio_test_young() local 21 if (unlikely(!page_ext)) in folio_test_young() 24 page_young = test_bit(PAGE_EXT_YOUNG, &page_ext->flags); in folio_test_young() 25 page_ext_put(page_ext); in folio_test_young() 32 struct page_ext *page_ext = page_ext_get(&folio->page); in folio_set_young() local 34 if (unlikely(!page_ext)) in folio_set_young() 37 set_bit(PAGE_EXT_YOUNG, &page_ext in folio_set_young() 43 struct page_ext *page_ext = page_ext_get(&folio->page); folio_test_clear_young() local 57 struct page_ext *page_ext = page_ext_get(&folio->page); folio_test_idle() local 71 struct page_ext *page_ext = page_ext_get(&folio->page); folio_set_idle() local 82 struct page_ext *page_ext = page_ext_get(&folio->page); folio_clear_idle() local [all...] |
H A D | page_ext.h | 13 * struct page_ext_operations - per page_ext client operations 14 * @offset: Offset to the client's data within page_ext. Offset is returned to 16 * @size: The size of the client data within page_ext. 17 * @need: Function that returns true if client requires page_ext. 19 * @need_shared_flags: True when client is using shared page_ext->flags 47 * A page_ext page is associated with every page descriptor. The 48 * page_ext helps us add more information about the page. 49 * All page_ext are allocated at boot or memory hotplug event, 50 * then the page_ext for pfn always exists. 52 struct page_ext { struct 84 page_ext_data(struct page_ext *page_ext, struct page_ext_operations *ops) page_ext_data() argument 126 page_ext_put(struct page_ext *page_ext) page_ext_put() argument [all...] |
H A D | mmzone.h | 1312 struct page_ext *node_page_ext; 1836 struct page_ext; 1855 * If SPARSEMEM, pgdat doesn't have page_ext pointer. We use 1856 * section. (see page_ext.h about this.) 1858 struct page_ext *page_ext; member
|
H A D | mm.h | 22 #include <linux/page_ext.h>
|
/kernel/linux/linux-5.10/include/linux/ |
H A D | page_idle.h | 7 #include <linux/page_ext.h> 50 struct page_ext *page_ext = lookup_page_ext(page); in page_is_young() local 52 if (unlikely(!page_ext)) in page_is_young() 55 return test_bit(PAGE_EXT_YOUNG, &page_ext->flags); in page_is_young() 60 struct page_ext *page_ext = lookup_page_ext(page); in set_page_young() local 62 if (unlikely(!page_ext)) in set_page_young() 65 set_bit(PAGE_EXT_YOUNG, &page_ext->flags); in set_page_young() 70 struct page_ext *page_ex in test_and_clear_page_young() local 80 struct page_ext *page_ext = lookup_page_ext(page); page_is_idle() local 90 struct page_ext *page_ext = lookup_page_ext(page); set_page_idle() local 100 struct page_ext *page_ext = lookup_page_ext(page); clear_page_idle() local [all...] |
H A D | page_ext.h | 30 * A page_ext page is associated with every page descriptor. The 31 * page_ext helps us add more information about the page. 32 * All page_ext are allocated at boot or memory hotplug event, 33 * then the page_ext for pfn always exists. 35 struct page_ext { struct 58 struct page_ext *lookup_page_ext(const struct page *page); 60 static inline struct page_ext *page_ext_next(struct page_ext *curr) in page_ext_next() 68 struct page_ext; 74 static inline struct page_ext *lookup_page_ex [all...] |
H A D | mmzone.h | 756 struct page_ext *node_page_ext; 1251 struct page_ext; 1270 * If SPARSEMEM, pgdat doesn't have page_ext pointer. We use 1271 * section. (see page_ext.h about this.) 1273 struct page_ext *page_ext; member
|
H A D | mm.h | 25 #include <linux/page_ext.h>
|
/kernel/linux/linux-5.10/mm/ |
H A D | page_owner.c | 102 static inline struct page_owner *get_page_owner(struct page_ext *page_ext) in get_page_owner() argument 104 return (void *)page_ext + page_owner_ops.offset; in get_page_owner() 149 struct page_ext *page_ext; in __reset_page_owner() local 156 page_ext = lookup_page_ext(page); in __reset_page_owner() 157 if (unlikely(!page_ext)) in __reset_page_owner() 160 __clear_bit(PAGE_EXT_OWNER_ALLOCATED, &page_ext->flags); in __reset_page_owner() 161 page_owner = get_page_owner(page_ext); in __reset_page_owner() 164 page_ext in __reset_page_owner() 168 __set_page_owner_handle(struct page *page, struct page_ext *page_ext, depot_stack_handle_t handle, unsigned int order, gfp_t gfp_mask) __set_page_owner_handle() argument 193 struct page_ext *page_ext = lookup_page_ext(page); __set_page_owner() local 205 struct page_ext *page_ext = lookup_page_ext(page); __set_page_owner_migrate_reason() local 218 struct page_ext *page_ext = lookup_page_ext(page); __split_page_owner() local 268 struct page_ext *page_ext; pagetypeinfo_showmixedcount_print() local 415 struct page_ext *page_ext = lookup_page_ext(page); __dump_page_owner() local 473 struct page_ext *page_ext; read_page_owner() local 582 struct page_ext *page_ext; init_pages_in_zone() local [all...] |
H A D | page_ext.c | 5 #include <linux/page_ext.h> 46 * When need callback returns true, page_ext checks if there is a request for 48 * extra space is allocated for each page_ext entry and offset is returned to 70 unsigned long page_ext_size = sizeof(struct page_ext); 109 static inline struct page_ext *get_entry(void *base, unsigned long index) in get_entry() 122 struct page_ext *lookup_page_ext(const struct page *page) in lookup_page_ext() 126 struct page_ext *base; in lookup_page_ext() 131 * page can reach here before the page_ext arrays are in lookup_page_ext() 144 struct page_ext *base; in alloc_node_page_ext() 186 pr_info("allocated %ld bytes of page_ext\ in page_ext_init_flatmem() [all...] |
H A D | page_poison.c | 7 #include <linux/page_ext.h>
|
H A D | page_idle.c | 13 #include <linux/page_ext.h>
|
H A D | Makefile | 113 obj-$(CONFIG_PAGE_EXTENSION) += page_ext.o
|
H A D | vmstat.c | 29 #include <linux/page_ext.h>
|
/kernel/linux/linux-6.6/mm/ |
H A D | page_owner.c | 105 static inline struct page_owner *get_page_owner(struct page_ext *page_ext) in get_page_owner() argument 107 return page_ext_data(page_ext, &page_owner_ops); in get_page_owner() 140 struct page_ext *page_ext; in __reset_page_owner() local 145 page_ext = page_ext_get(page); in __reset_page_owner() 146 if (unlikely(!page_ext)) in __reset_page_owner() 151 __clear_bit(PAGE_EXT_OWNER_ALLOCATED, &page_ext->flags); in __reset_page_owner() 152 page_owner = get_page_owner(page_ext); in __reset_page_owner() 155 page_ext in __reset_page_owner() 160 __set_page_owner_handle(struct page_ext *page_ext, depot_stack_handle_t handle, unsigned short order, gfp_t gfp_mask) __set_page_owner_handle() argument 189 struct page_ext *page_ext; __set_page_owner() local 203 struct page_ext *page_ext = page_ext_get(page); __set_page_owner_migrate_reason() local 217 struct page_ext *page_ext = page_ext_get(page); __split_page_owner() local 279 struct page_ext *page_ext; pagetypeinfo_showmixedcount_print() local 457 struct page_ext *page_ext = page_ext_get((void *)page); __dump_page_owner() local 513 struct page_ext *page_ext; read_page_owner() local 645 struct page_ext *page_ext; init_pages_in_zone() local [all...] |
H A D | page_ext.c | 5 #include <linux/page_ext.h> 48 * When need callback returns true, page_ext checks if there is a request for 50 * extra space is allocated for each page_ext entry and offset is returned to 111 page_ext_size = sizeof(struct page_ext); in invoke_need_callbacks() 139 static inline struct page_ext *get_entry(void *base, unsigned long index) in get_entry() 155 static struct page_ext *lookup_page_ext(const struct page *page) in lookup_page_ext() 159 struct page_ext *base; in lookup_page_ext() 165 * page can reach here before the page_ext arrays are in lookup_page_ext() 178 struct page_ext *base; in alloc_node_page_ext() 220 pr_info("allocated %ld bytes of page_ext\ in page_ext_init_flatmem() 229 page_ext_invalid(struct page_ext *page_ext) page_ext_invalid() argument 238 struct page_ext *page_ext = READ_ONCE(section->page_ext); lookup_page_ext() local 506 struct page_ext *page_ext; page_ext_get() local 528 page_ext_put(struct page_ext *page_ext) page_ext_put() argument [all...] |
H A D | page_table_check.c | 51 static struct page_table_check *get_page_table_check(struct page_ext *page_ext) in get_page_table_check() argument 53 BUG_ON(!page_ext); in get_page_table_check() 54 return page_ext_data(page_ext, &page_table_check_ops); in get_page_table_check() 63 struct page_ext *page_ext; in page_table_check_clear() local 72 page_ext = page_ext_get(page); in page_table_check_clear() 78 struct page_table_check *ptc = get_page_table_check(page_ext); in page_table_check_clear() 87 page_ext = page_ext_next(page_ext); in page_table_check_clear() 100 struct page_ext *page_ext; page_table_check_set() local 135 struct page_ext *page_ext; __page_table_check_zero() local [all...] |
H A D | page_idle.c | 13 #include <linux/page_ext.h>
|
H A D | Makefile | 119 obj-$(CONFIG_PAGE_EXTENSION) += page_ext.o
|
H A D | mm_init.c | 24 #include <linux/page_ext.h> 2781 * page_ext requires contiguous pages, in mm_core_init() 2803 /* If no deferred init page_ext now, as vmap is fully initialized */ in mm_core_init()
|
/kernel/linux/linux-6.6/scripts/gdb/linux/ |
H A D | page_owner.py | 13 page_ext_t = utils.CachedType('struct page_ext') 69 def page_ext_invalid(self, page_ext): 70 if page_ext == gdb.Value(0): 72 if page_ext.cast(utils.get_ulong_type()) & PAGE_EXT_INVALID == PAGE_EXT_INVALID: 82 page_ext = section["page_ext"] 83 if self.page_ext_invalid(page_ext): 85 return self.get_entry(page_ext, pfn) 88 page_ext = self.lookup_page_ext(page) 89 if page_ext ! [all...] |
/kernel/linux/linux-5.10/init/ |
H A D | main.c | 62 #include <linux/page_ext.h> 826 * page_ext requires contiguous pages, in mm_init()
|