at v4.7 75 lines 2.2 kB view raw
1#ifndef __LINUX_PAGE_OWNER_H 2#define __LINUX_PAGE_OWNER_H 3 4#include <linux/jump_label.h> 5 6#ifdef CONFIG_PAGE_OWNER 7extern struct static_key_false page_owner_inited; 8extern struct page_ext_operations page_owner_ops; 9 10extern void __reset_page_owner(struct page *page, unsigned int order); 11extern void __set_page_owner(struct page *page, 12 unsigned int order, gfp_t gfp_mask); 13extern gfp_t __get_page_owner_gfp(struct page *page); 14extern void __copy_page_owner(struct page *oldpage, struct page *newpage); 15extern void __set_page_owner_migrate_reason(struct page *page, int reason); 16extern void __dump_page_owner(struct page *page); 17 18static inline void reset_page_owner(struct page *page, unsigned int order) 19{ 20 if (static_branch_unlikely(&page_owner_inited)) 21 __reset_page_owner(page, order); 22} 23 24static inline void set_page_owner(struct page *page, 25 unsigned int order, gfp_t gfp_mask) 26{ 27 if (static_branch_unlikely(&page_owner_inited)) 28 __set_page_owner(page, order, gfp_mask); 29} 30 31static inline gfp_t get_page_owner_gfp(struct page *page) 32{ 33 if (static_branch_unlikely(&page_owner_inited)) 34 return __get_page_owner_gfp(page); 35 else 36 return 0; 37} 38static inline void copy_page_owner(struct page *oldpage, struct page *newpage) 39{ 40 if (static_branch_unlikely(&page_owner_inited)) 41 __copy_page_owner(oldpage, newpage); 42} 43static inline void set_page_owner_migrate_reason(struct page *page, int reason) 44{ 45 if (static_branch_unlikely(&page_owner_inited)) 46 __set_page_owner_migrate_reason(page, reason); 47} 48static inline void dump_page_owner(struct page *page) 49{ 50 if (static_branch_unlikely(&page_owner_inited)) 51 __dump_page_owner(page); 52} 53#else 54static inline void reset_page_owner(struct page *page, unsigned int order) 55{ 56} 57static inline void set_page_owner(struct page *page, 58 unsigned int order, gfp_t gfp_mask) 59{ 60} 61static inline gfp_t get_page_owner_gfp(struct page *page) 62{ 63 return 0; 64} 65static inline void copy_page_owner(struct page *oldpage, struct page *newpage) 66{ 67} 68static inline void set_page_owner_migrate_reason(struct page *page, int reason) 69{ 70} 71static inline void dump_page_owner(struct page *page) 72{ 73} 74#endif /* CONFIG_PAGE_OWNER */ 75#endif /* __LINUX_PAGE_OWNER_H */