| /linux/include/linux/ |
| H A D | page_ref.h | 29 extern void __page_ref_set(struct page *page, int v); 30 extern void __page_ref_mod(struct page *page, int v); 31 extern void __page_ref_mod_and_test(struct page *page, int v, int ret); 32 extern void __page_ref_mod_and_return(struct page *page, int v, int ret); 33 extern void __page_ref_mod_unless(struct page *page, int v, int u); 34 extern void __page_ref_freeze(struct page *page, int v, int ret); 35 extern void __page_ref_unfreeze(struct page *page, int v); 41 static inline void __page_ref_set(struct page *page, int v) in __page_ref_set() argument 44 static inline void __page_ref_mod(struct page *page, int v) in __page_ref_mod() argument 47 static inline void __page_ref_mod_and_test(struct page *page, int v, int ret) in __page_ref_mod_and_test() argument [all …]
|
| H A D | page-flags.h | 208 static __always_inline const struct page *page_fixed_fake_head(const struct page *page) in page_fixed_fake_head() argument 211 return page; in page_fixed_fake_head() 219 if (IS_ALIGNED((unsigned long)page, PAGE_SIZE) && in page_fixed_fake_head() 220 test_bit(PG_head, &page->flags.f)) { in page_fixed_fake_head() 226 unsigned long head = READ_ONCE(page[1].compound_head); in page_fixed_fake_head() 229 return (const struct page *)(head - 1); in page_fixed_fake_head() 231 return page; in page_fixed_fake_head() 234 static __always_inline bool page_count_writable(const struct page *page, int u) in page_count_writable() argument 260 if (atomic_read_acquire(&page->_refcount) == u) in page_count_writable() 263 return page_fixed_fake_head(page) == page; in page_count_writable() [all …]
|
| H A D | highmem-internal.h | 10 void *__kmap_local_page_prot(const struct page *page, pgprot_t prot); 35 void *kmap_high(struct page *page); 36 void kunmap_high(const struct page *page); 38 struct page *__kmap_to_page(void *addr); 40 static inline void *kmap(struct page *page) in kmap() argument 45 if (!PageHighMem(page)) in kmap() 46 addr = page_address(page); in kmap() 48 addr = kmap_high(page); in kmap() 53 static inline void kunmap(const struct page *page) in kunmap() argument 56 if (!PageHighMem(page)) in kunmap() [all …]
|
| H A D | bootmem_info.h | 21 void register_page_bootmem_memmap(unsigned long section_nr, struct page *map, 24 void get_page_bootmem(unsigned long info, struct page *page, 26 void put_page_bootmem(struct page *page); 28 static inline enum bootmem_type bootmem_type(const struct page *page) in bootmem_type() argument 30 return (unsigned long)page->private & 0xf; in bootmem_type() 33 static inline unsigned long bootmem_info(const struct page *page) in bootmem_info() argument 35 return (unsigned long)page->private >> 4; in bootmem_info() 43 static inline void free_bootmem_page(struct page *page) in free_bootmem_page() argument 45 enum bootmem_type type = bootmem_type(page); in free_bootmem_page() 51 VM_BUG_ON_PAGE(page_ref_count(page) != 2, page); in free_bootmem_page() [all …]
|
| H A D | page-isolation.h | 6 static inline bool is_migrate_isolate_page(struct page *page) in is_migrate_isolate_page() argument 8 return get_pageblock_migratetype(page) == MIGRATE_ISOLATE; in is_migrate_isolate_page() 14 #define get_pageblock_isolate(page) \ argument 15 get_pfnblock_bit(page, page_to_pfn(page), PB_migrate_isolate) 16 #define clear_pageblock_isolate(page) \ argument 17 clear_pfnblock_bit(page, page_to_pfn(page), PB_migrate_isolate) 18 #define set_pageblock_isolate(page) \ argument 19 set_pfnblock_bit(page, page_to_pfn(page), PB_migrate_isolate) 21 static inline bool is_migrate_isolate_page(struct page *page) in is_migrate_isolate_page() argument 29 static inline bool get_pageblock_isolate(struct page *page) in get_pageblock_isolate() argument [all …]
|
| H A D | balloon_compaction.h | 57 int (*migratepage)(struct balloon_dev_info *, struct page *newpage, 58 struct page *page, enum migrate_mode mode); 61 extern struct page *balloon_page_alloc(void); 63 struct page *page); 64 extern struct page *balloon_page_dequeue(struct balloon_dev_info *b_dev_info); 84 static inline struct balloon_dev_info *balloon_page_device(struct page *page) in balloon_page_device() argument 86 return (struct balloon_dev_info *)page_private(page); in balloon_page_device() 100 struct page *page) in balloon_page_insert() argument 102 __SetPageOffline(page); in balloon_page_insert() 104 SetPageMovableOps(page); in balloon_page_insert() [all …]
|
| H A D | page_owner.h | 11 extern void __reset_page_owner(struct page *page, unsigned short order); 12 extern void __set_page_owner(struct page *page, 14 extern void __split_page_owner(struct page *page, int old_order, 18 extern void __dump_page_owner(const struct page *page); 22 static inline void reset_page_owner(struct page *page, unsigned short order) in reset_page_owner() argument 25 __reset_page_owner(page, order); in reset_page_owner() 28 static inline void set_page_owner(struct page *page, in set_page_owner() argument 32 __set_page_owner(page, order, gfp_mask); in set_page_owner() 35 static inline void split_page_owner(struct page *page, int old_order, in split_page_owner() argument 39 __split_page_owner(page, old_order, new_order); in split_page_owner() [all …]
|
| H A D | highmem.h | 37 static inline void *kmap(struct page *page); 46 static inline void kunmap(const struct page *page); 54 static inline struct page *kmap_to_page(void *addr); 96 static inline void *kmap_local_page(const struct page *page); 179 static inline void *kmap_atomic(const struct page *page); 186 static inline void flush_anon_page(struct vm_area_struct *vma, struct page *page, unsigned long vma… in flush_anon_page() argument 202 static inline void clear_user_highpage(struct page *page, unsigned long vaddr) in clear_user_highpage() argument 204 void *addr = kmap_local_page(page); in clear_user_highpage() 205 clear_user_page(addr, vaddr, page); in clear_user_highpage() 231 clear_user_highpage(&folio->page, vaddr); in vma_alloc_zeroed_movable_folio() [all …]
|
| H A D | pageblock-flags.h | 82 struct page; 84 enum migratetype get_pfnblock_migratetype(const struct page *page, 86 bool get_pfnblock_bit(const struct page *page, unsigned long pfn, 88 void set_pfnblock_bit(const struct page *page, unsigned long pfn, 90 void clear_pfnblock_bit(const struct page *page, unsigned long pfn, 95 #define get_pageblock_skip(page) \ argument 96 get_pfnblock_bit(page, page_to_pfn(page), PB_compact_skip) 97 #define clear_pageblock_skip(page) \ argument 98 clear_pfnblock_bit(page, page_to_pfn(page), PB_compact_skip) 99 #define set_pageblock_skip(page) \ argument [all …]
|
| /linux/mm/ |
| H A D | page_isolation.c | 33 static struct page *has_unmovable_pages(unsigned long start_pfn, unsigned long end_pfn, in has_unmovable_pages() 36 struct page *page = pfn_to_page(start_pfn); in has_unmovable_pages() local 37 struct zone *zone = page_zone(page); in has_unmovable_pages() 43 if (is_migrate_cma_page(page)) { in has_unmovable_pages() 52 return page; in has_unmovable_pages() 56 page = pfn_to_page(pfn); in has_unmovable_pages() 64 if (PageReserved(page)) in has_unmovable_pages() 65 return page; in has_unmovable_pages() 81 if (PageHuge(page) || PageTransCompound(page)) { in has_unmovable_pages() 82 struct folio *folio = page_folio(page); in has_unmovable_pages() [all …]
|
| H A D | page_alloc.c | 217 static void __free_pages_ok(struct page *page, unsigned int order, 292 static bool page_contains_unaccepted(struct page *page, unsigned int order); 295 static bool __free_unaccepted(struct page *page); 336 static inline unsigned long *get_pageblock_bitmap(const struct page *page, in get_pageblock_bitmap() argument 342 return page_zone(page)->pageblock_flags; in get_pageblock_bitmap() 346 static inline int pfn_to_bitidx(const struct page *page, unsigned long pfn) in pfn_to_bitidx() argument 351 pfn = pfn - pageblock_start_pfn(page_zone(page)->zone_start_pfn); in pfn_to_bitidx() 362 get_pfnblock_bitmap_bitidx(const struct page *page, unsigned long pfn, in get_pfnblock_bitmap_bitidx() argument 374 VM_BUG_ON_PAGE(!zone_spans_pfn(page_zone(page), pfn), page); in get_pfnblock_bitmap_bitidx() 376 bitmap = get_pageblock_bitmap(page, pfn); in get_pfnblock_bitmap_bitidx() [all …]
|
| H A D | folio-compat.c | 13 void unlock_page(struct page *page) in unlock_page() argument 15 return folio_unlock(page_folio(page)); in unlock_page() 19 void end_page_writeback(struct page *page) in end_page_writeback() argument 21 return folio_end_writeback(page_folio(page)); in end_page_writeback() 25 void wait_on_page_writeback(struct page *page) in wait_on_page_writeback() argument 27 return folio_wait_writeback(page_folio(page)); in wait_on_page_writeback() 31 void mark_page_accessed(struct page *page) in mark_page_accessed() argument 33 folio_mark_accessed(page_folio(page)); in mark_page_accessed() 37 void set_page_writeback(struct page *page) in set_page_writeback() argument 39 folio_start_writeback(page_folio(page)); in set_page_writeback() [all …]
|
| H A D | balloon_compaction.c | 15 struct page *page) in balloon_page_enqueue_one() argument 23 BUG_ON(!trylock_page(page)); in balloon_page_enqueue_one() 24 balloon_page_insert(b_dev_info, page); in balloon_page_enqueue_one() 25 unlock_page(page); in balloon_page_enqueue_one() 27 inc_node_page_state(page, NR_BALLOON_PAGES); in balloon_page_enqueue_one() 44 struct page *page, *tmp; in balloon_page_list_enqueue() local 49 list_for_each_entry_safe(page, tmp, pages, lru) { in balloon_page_list_enqueue() 50 list_del(&page->lru); in balloon_page_list_enqueue() 51 balloon_page_enqueue_one(b_dev_info, page); in balloon_page_list_enqueue() 80 struct page *page, *tmp; in balloon_page_list_dequeue() local [all …]
|
| H A D | page_frag_cache.c | 23 static unsigned long encoded_page_create(struct page *page, unsigned int order, in encoded_page_create() argument 29 return (unsigned long)page_address(page) | in encoded_page_create() 44 static struct page *encoded_page_decode_page(unsigned long encoded_page) in encoded_page_decode_page() 49 static struct page *__page_frag_cache_refill(struct page_frag_cache *nc, in __page_frag_cache_refill() 53 struct page *page = NULL; in __page_frag_cache_refill() local 59 page = __alloc_pages(gfp_mask, PAGE_FRAG_CACHE_MAX_ORDER, in __page_frag_cache_refill() 62 if (unlikely(!page)) { in __page_frag_cache_refill() 63 page = __alloc_pages(gfp, 0, numa_mem_id(), NULL); in __page_frag_cache_refill() 67 nc->encoded_page = page ? in __page_frag_cache_refill() 68 encoded_page_create(page, order, page_is_pfmemalloc(page)) : 0; in __page_frag_cache_refill() [all …]
|
| H A D | bootmem_info.c | 17 void get_page_bootmem(unsigned long info, struct page *page, in get_page_bootmem() argument 22 SetPagePrivate(page); in get_page_bootmem() 23 set_page_private(page, info << 4 | type); in get_page_bootmem() 24 page_ref_inc(page); in get_page_bootmem() 27 void put_page_bootmem(struct page *page) in put_page_bootmem() argument 29 enum bootmem_type type = bootmem_type(page); in put_page_bootmem() 34 if (page_ref_dec_return(page) == 1) { in put_page_bootmem() 35 ClearPagePrivate(page); in put_page_bootmem() 36 set_page_private(page, 0); in put_page_bootmem() 37 INIT_LIST_HEAD(&page->lru); in put_page_bootmem() [all …]
|
| H A D | debug_page_ref.c | 8 void __page_ref_set(struct page *page, int v) in __page_ref_set() argument 10 trace_page_ref_set(page, v); in __page_ref_set() 15 void __page_ref_mod(struct page *page, int v) in __page_ref_mod() argument 17 trace_page_ref_mod(page, v); in __page_ref_mod() 22 void __page_ref_mod_and_test(struct page *page, int v, int ret) in __page_ref_mod_and_test() argument 24 trace_page_ref_mod_and_test(page, v, ret); in __page_ref_mod_and_test() 29 void __page_ref_mod_and_return(struct page *page, int v, int ret) in __page_ref_mod_and_return() argument 31 trace_page_ref_mod_and_return(page, v, ret); in __page_ref_mod_and_return() 36 void __page_ref_mod_unless(struct page *page, int v, int u) in __page_ref_mod_unless() argument 38 trace_page_ref_mod_unless(page, v, u); in __page_ref_mod_unless() [all …]
|
| /linux/arch/arm/include/asm/ |
| H A D | page.h | 104 struct page; 108 void (*cpu_clear_user_highpage)(struct page *page, unsigned long vaddr); 109 void (*cpu_copy_user_highpage)(struct page *to, struct page *from, 113 void fa_copy_user_highpage(struct page *to, struct page *from, 115 void fa_clear_user_highpage(struct page *page, unsigned long vaddr); 116 void feroceon_copy_user_highpage(struct page *to, struct page *from, 118 void feroceon_clear_user_highpage(struct page *page, unsigned long vaddr); 119 void v4_mc_copy_user_highpage(struct page *to, struct page *from, 121 void v4_mc_clear_user_highpage(struct page *page, unsigned long vaddr); 122 void v4wb_copy_user_highpage(struct page *to, struct page *from, [all …]
|
| /linux/sound/pci/trident/ |
| H A D | trident_memory.c | 22 #define __set_tlb_bus(trident,page,addr) \ argument 23 (trident)->tlb.entries[page] = cpu_to_le32((addr) & ~(SNDRV_TRIDENT_PAGE_SIZE-1)) 24 #define __tlb_to_addr(trident,page) \ argument 25 (dma_addr_t)le32_to_cpu((trident->tlb.entries[page]) & ~(SNDRV_TRIDENT_PAGE_SIZE - 1)) 32 #define set_tlb_bus(trident,page,addr) __set_tlb_bus(trident,page,addr) argument 34 #define set_silent_tlb(trident,page) __set_tlb_bus(trident, page, trident->tlb.silent_page->addr) argument 38 #define aligned_page_offset(page) ((page) << 12) argument 40 #define page_to_addr(trident,page) __tlb_to_addr(trident, page) argument 47 #define aligned_page_offset(page) ((page) << 13) argument 48 #define page_to_addr(trident,page) __tlb_to_addr(trident, (page) << 1) argument [all …]
|
| /linux/include/trace/events/ |
| H A D | page_ref.h | 15 TP_PROTO(struct page *page, int v), 17 TP_ARGS(page, v), 30 __entry->pfn = page_to_pfn(page); 31 __entry->flags = page->flags.f; 32 __entry->count = page_ref_count(page); 33 __entry->mapcount = atomic_read(&page->_mapcount); 34 __entry->mapping = page->mapping; 35 __entry->mt = get_pageblock_migratetype(page); 49 TP_PROTO(struct page *page, int v), 51 TP_ARGS(page, v) [all …]
|
| /linux/Documentation/trace/ |
| H A D | ring-buffer-design.rst | 40 - A page outside the ring buffer used solely (for the most part) 44 - a pointer to the page that the reader will use next 47 - a pointer to the page that will be written to next 50 - a pointer to the page with the last finished non-nested write. 110 At initialization a reader page is allocated for the reader that is not 114 to the same page. 116 The reader page is initialized to have its next pointer pointing to 117 the head page, and its previous pointer pointing to a page before 118 the head page. 120 The reader has its own page to use. At start up time, this page is [all …]
|
| /linux/mm/kmsan/ |
| H A D | shadow.c | 22 #define shadow_page_for(page) ((page)->kmsan_shadow) argument 24 #define origin_page_for(page) ((page)->kmsan_origin) argument 26 static void *shadow_ptr_for(struct page *page) in shadow_ptr_for() argument 28 return page_address(shadow_page_for(page)); in shadow_ptr_for() 31 static void *origin_ptr_for(struct page *page) in origin_ptr_for() argument 33 return page_address(origin_page_for(page)); in origin_ptr_for() 36 static bool page_has_metadata(struct page *page) in page_has_metadata() argument 38 return shadow_page_for(page) && origin_page_for(page); in page_has_metadata() 41 static void set_no_shadow_origin_page(struct page *page) in set_no_shadow_origin_page() argument 43 shadow_page_for(page) = NULL; in set_no_shadow_origin_page() [all …]
|
| /linux/arch/openrisc/include/asm/ |
| H A D | cacheflush.h | 24 extern void local_dcache_page_flush(struct page *page); 25 extern void local_icache_page_inv(struct page *page); 36 #define dcache_page_flush(page) local_dcache_page_flush(page) argument 37 #define icache_page_inv(page) local_icache_page_inv(page) argument 39 #define dcache_page_flush(page) local_dcache_page_flush(page) argument 40 #define icache_page_inv(page) smp_icache_page_inv(page) argument 41 extern void smp_icache_page_inv(struct page *page); 62 static inline void sync_icache_dcache(struct page *page) in sync_icache_dcache() argument 65 dcache_page_flush(page); in sync_icache_dcache() 66 icache_page_inv(page); in sync_icache_dcache() [all …]
|
| /linux/Documentation/mm/ |
| H A D | vmemmap_dedup.rst | 13 The ``struct page`` structures are used to describe a physical page frame. By 14 default, there is a one-to-one mapping from a page frame to its corresponding 15 ``struct page``. 17 HugeTLB pages consist of multiple base page size pages and is supported by many 20 currently supported. Since the base page size on x86 is 4KB, a 2MB HugeTLB page 21 consists of 512 base pages and a 1GB HugeTLB page consists of 262144 base pages. 22 For each base page, there is a corresponding ``struct page``. 24 Within the HugeTLB subsystem, only the first 4 ``struct page`` are used to 25 contain unique information about a HugeTLB page. ``__NR_USED_SUBPAGE`` provides 26 this upper limit. The only 'useful' information in the remaining ``struct page`` [all …]
|
| /linux/sound/pci/emu10k1/ |
| H A D | memory.c | 21 #define __set_ptb_entry(emu,page,addr) \ argument 22 (((__le32 *)(emu)->ptb_pages.area)[page] = \ 23 cpu_to_le32(((addr) << (emu->address_mode)) | (page))) 24 #define __get_ptb_entry(emu, page) \ argument 25 (le32_to_cpu(((__le32 *)(emu)->ptb_pages.area)[page])) 33 #define aligned_page_offset(page) ((page) << PAGE_SHIFT) argument 37 #define set_ptb_entry(emu,page,addr) __set_ptb_entry(emu,page,addr) argument 39 #define set_silent_ptb(emu,page) __set_ptb_entry(emu,page,emu->silent_page.addr) argument 42 static inline void set_ptb_entry(struct snd_emu10k1 *emu, int page, dma_addr_t addr) in set_ptb_entry() argument 45 page *= UNIT_PAGES; in set_ptb_entry() [all …]
|
| /linux/drivers/target/iscsi/ |
| H A D | iscsi_target_stat.c | 51 char *page) in iscsi_stat_instance_inst_show() argument 53 return snprintf(page, PAGE_SIZE, "%u\n", in iscsi_stat_instance_inst_show() 58 char *page) in iscsi_stat_instance_min_ver_show() argument 60 return snprintf(page, PAGE_SIZE, "%u\n", ISCSI_DRAFT20_VERSION); in iscsi_stat_instance_min_ver_show() 64 char *page) in iscsi_stat_instance_max_ver_show() argument 66 return snprintf(page, PAGE_SIZE, "%u\n", ISCSI_DRAFT20_VERSION); in iscsi_stat_instance_max_ver_show() 70 char *page) in iscsi_stat_instance_portals_show() argument 72 return snprintf(page, PAGE_SIZE, "%u\n", in iscsi_stat_instance_portals_show() 77 char *page) in iscsi_stat_instance_nodes_show() argument 79 return snprintf(page, PAGE_SIZE, "%u\n", ISCSI_INST_NUM_NODES); in iscsi_stat_instance_nodes_show() [all …]
|