Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost
[deliverable/linux.git] / include / linux / page_owner.h
CommitLineData
48c96a36
JK
1#ifndef __LINUX_PAGE_OWNER_H
2#define __LINUX_PAGE_OWNER_H
3
7dd80b8a
VB
4#include <linux/jump_label.h>
5
48c96a36 6#ifdef CONFIG_PAGE_OWNER
7dd80b8a 7extern struct static_key_false page_owner_inited;
48c96a36
JK
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);
e2cfc911 13extern gfp_t __get_page_owner_gfp(struct page *page);
d435edca 14extern void __copy_page_owner(struct page *oldpage, struct page *newpage);
7cd12b4a 15extern void __set_page_owner_migrate_reason(struct page *page, int reason);
4e462112 16extern void __dump_page_owner(struct page *page);
48c96a36
JK
17
18static inline void reset_page_owner(struct page *page, unsigned int order)
19{
7dd80b8a
VB
20 if (static_branch_unlikely(&page_owner_inited))
21 __reset_page_owner(page, order);
48c96a36
JK
22}
23
24static inline void set_page_owner(struct page *page,
25 unsigned int order, gfp_t gfp_mask)
26{
7dd80b8a
VB
27 if (static_branch_unlikely(&page_owner_inited))
28 __set_page_owner(page, order, gfp_mask);
48c96a36 29}
e2cfc911
JK
30
31static inline gfp_t get_page_owner_gfp(struct page *page)
32{
7dd80b8a
VB
33 if (static_branch_unlikely(&page_owner_inited))
34 return __get_page_owner_gfp(page);
35 else
e2cfc911 36 return 0;
e2cfc911 37}
d435edca
VB
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}
7cd12b4a
VB
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}
4e462112
VB
48static inline void dump_page_owner(struct page *page)
49{
50 if (static_branch_unlikely(&page_owner_inited))
51 __dump_page_owner(page);
52}
48c96a36
JK
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}
e2cfc911
JK
61static inline gfp_t get_page_owner_gfp(struct page *page)
62{
63 return 0;
64}
d435edca
VB
65static inline void copy_page_owner(struct page *oldpage, struct page *newpage)
66{
67}
7cd12b4a
VB
68static inline void set_page_owner_migrate_reason(struct page *page, int reason)
69{
70}
4e462112
VB
71static inline void dump_page_owner(struct page *page)
72{
73}
48c96a36
JK
74#endif /* CONFIG_PAGE_OWNER */
75#endif /* __LINUX_PAGE_OWNER_H */
This page took 0.157877 seconds and 5 git commands to generate.