brintos

brintos / linux-shallow public Read only

0
0
Text · 2.4 KiB · debdc25 Raw
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