Branch data Line data Source code
1 : : /* SPDX-License-Identifier: GPL-2.0 */ 2 : : #ifndef __LINUX_PAGE_OWNER_H 3 : : #define __LINUX_PAGE_OWNER_H 4 : : 5 : : #include <linux/jump_label.h> 6 : : 7 : : #ifdef CONFIG_PAGE_OWNER 8 : : extern struct static_key_false page_owner_inited; 9 : : extern struct page_ext_operations page_owner_ops; 10 : : 11 : : extern void __reset_page_owner(struct page *page, unsigned int order); 12 : : extern void __set_page_owner(struct page *page, 13 : : unsigned int order, gfp_t gfp_mask); 14 : : extern void __split_page_owner(struct page *page, unsigned int order); 15 : : extern void __copy_page_owner(struct page *oldpage, struct page *newpage); 16 : : extern void __set_page_owner_migrate_reason(struct page *page, int reason); 17 : : extern void __dump_page_owner(struct page *page); 18 : : extern void pagetypeinfo_showmixedcount_print(struct seq_file *m, 19 : : pg_data_t *pgdat, struct zone *zone); 20 : : 21 : : static inline void reset_page_owner(struct page *page, unsigned int order) 22 : : { 23 : : if (static_branch_unlikely(&page_owner_inited)) 24 : : __reset_page_owner(page, order); 25 : : } 26 : : 27 : : static inline void set_page_owner(struct page *page, 28 : : unsigned int order, gfp_t gfp_mask) 29 : : { 30 : : if (static_branch_unlikely(&page_owner_inited)) 31 : : __set_page_owner(page, order, gfp_mask); 32 : : } 33 : : 34 : : static inline void split_page_owner(struct page *page, unsigned int order) 35 : : { 36 : : if (static_branch_unlikely(&page_owner_inited)) 37 : : __split_page_owner(page, order); 38 : : } 39 : : static inline void copy_page_owner(struct page *oldpage, struct page *newpage) 40 : : { 41 : : if (static_branch_unlikely(&page_owner_inited)) 42 : : __copy_page_owner(oldpage, newpage); 43 : : } 44 : : static inline void set_page_owner_migrate_reason(struct page *page, int reason) 45 : : { 46 : : if (static_branch_unlikely(&page_owner_inited)) 47 : : __set_page_owner_migrate_reason(page, reason); 48 : : } 49 : : static inline void dump_page_owner(struct page *page) 50 : : { 51 : : if (static_branch_unlikely(&page_owner_inited)) 52 : : __dump_page_owner(page); 53 : : } 54 : : #else 55 : : static inline void reset_page_owner(struct page *page, unsigned int order) 56 : : { 57 : : } 58 : 3572515 : static inline void set_page_owner(struct page *page, 59 : : unsigned int order, gfp_t gfp_mask) 60 : : { 61 [ + - ]: 3572515 : } 62 : 0 : static inline void split_page_owner(struct page *page, 63 : : unsigned int order) 64 : : { 65 : 0 : } 66 : 0 : static inline void copy_page_owner(struct page *oldpage, struct page *newpage) 67 : : { 68 : 0 : } 69 : 0 : static inline void set_page_owner_migrate_reason(struct page *page, int reason) 70 : : { 71 : 0 : } 72 : 0 : static inline void dump_page_owner(struct page *page) 73 : : { 74 : 0 : } 75 : : #endif /* CONFIG_PAGE_OWNER */ 76 : : #endif /* __LINUX_PAGE_OWNER_H */