79 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2#ifndef __LINUX_PAGE_OWNER_H3#define __LINUX_PAGE_OWNER_H4 5#include <linux/jump_label.h>6 7#ifdef CONFIG_PAGE_OWNER8extern struct static_key_false page_owner_inited;9extern struct page_ext_operations page_owner_ops;10 11extern void __reset_page_owner(struct page *page, unsigned short order);12extern void __set_page_owner(struct page *page,13 unsigned short order, gfp_t gfp_mask);14extern void __split_page_owner(struct page *page, int old_order,15 int new_order);16extern void __folio_copy_owner(struct folio *newfolio, struct folio *old);17extern void __set_page_owner_migrate_reason(struct page *page, int reason);18extern void __dump_page_owner(const struct page *page);19extern void pagetypeinfo_showmixedcount_print(struct seq_file *m,20 pg_data_t *pgdat, struct zone *zone);21 22static inline void reset_page_owner(struct page *page, unsigned short order)23{24 if (static_branch_unlikely(&page_owner_inited))25 __reset_page_owner(page, order);26}27 28static inline void set_page_owner(struct page *page,29 unsigned short order, gfp_t gfp_mask)30{31 if (static_branch_unlikely(&page_owner_inited))32 __set_page_owner(page, order, gfp_mask);33}34 35static inline void split_page_owner(struct page *page, int old_order,36 int new_order)37{38 if (static_branch_unlikely(&page_owner_inited))39 __split_page_owner(page, old_order, new_order);40}41static inline void folio_copy_owner(struct folio *newfolio, struct folio *old)42{43 if (static_branch_unlikely(&page_owner_inited))44 __folio_copy_owner(newfolio, old);45}46static inline void set_page_owner_migrate_reason(struct page *page, int reason)47{48 if (static_branch_unlikely(&page_owner_inited))49 __set_page_owner_migrate_reason(page, reason);50}51static inline void dump_page_owner(const struct page *page)52{53 if (static_branch_unlikely(&page_owner_inited))54 __dump_page_owner(page);55}56#else57static inline void reset_page_owner(struct page *page, unsigned short order)58{59}60static inline void set_page_owner(struct page *page,61 unsigned short order, gfp_t gfp_mask)62{63}64static inline void split_page_owner(struct page *page, int old_order,65 int new_order)66{67}68static inline void folio_copy_owner(struct folio *newfolio, struct folio *folio)69{70}71static inline void set_page_owner_migrate_reason(struct page *page, int reason)72{73}74static inline void dump_page_owner(const struct page *page)75{76}77#endif /* CONFIG_PAGE_OWNER */78#endif /* __LINUX_PAGE_OWNER_H */79