linux/include/linux/page_owner.h
<<
>>
Prefs
   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
   8extern 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 int order);
  12extern void __set_page_owner(struct page *page,
  13                        unsigned int order, gfp_t gfp_mask);
  14extern void __split_page_owner(struct page *page, unsigned int order);
  15extern void __copy_page_owner(struct page *oldpage, struct page *newpage);
  16extern void __set_page_owner_migrate_reason(struct page *page, int reason);
  17extern void __dump_page_owner(struct page *page);
  18extern void pagetypeinfo_showmixedcount_print(struct seq_file *m,
  19                                        pg_data_t *pgdat, struct zone *zone);
  20
  21static 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
  27static 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
  34static 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}
  39static 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}
  44static 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}
  49static 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
  55static inline void reset_page_owner(struct page *page, unsigned int order)
  56{
  57}
  58static inline void set_page_owner(struct page *page,
  59                        unsigned int order, gfp_t gfp_mask)
  60{
  61}
  62static inline void split_page_owner(struct page *page,
  63                        unsigned int order)
  64{
  65}
  66static inline void copy_page_owner(struct page *oldpage, struct page *newpage)
  67{
  68}
  69static inline void set_page_owner_migrate_reason(struct page *page, int reason)
  70{
  71}
  72static inline void dump_page_owner(struct page *page)
  73{
  74}
  75#endif /* CONFIG_PAGE_OWNER */
  76#endif /* __LINUX_PAGE_OWNER_H */
  77