linux/include/linux/page_owner.h
<<
>>
Prefs
   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 */
  76