mm, page_owner: copy page owner info during migration
[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);
48c96a36
JK
15
16static inline void reset_page_owner(struct page *page, unsigned int order)
17{
7dd80b8a
VB
18 if (static_branch_unlikely(&page_owner_inited))
19 __reset_page_owner(page, order);
48c96a36
JK
20}
21
22static inline void set_page_owner(struct page *page,
23 unsigned int order, gfp_t gfp_mask)
24{
7dd80b8a
VB
25 if (static_branch_unlikely(&page_owner_inited))
26 __set_page_owner(page, order, gfp_mask);
48c96a36 27}
e2cfc911
JK
28
29static inline gfp_t get_page_owner_gfp(struct page *page)
30{
7dd80b8a
VB
31 if (static_branch_unlikely(&page_owner_inited))
32 return __get_page_owner_gfp(page);
33 else
e2cfc911 34 return 0;
e2cfc911 35}
d435edca
VB
36static inline void copy_page_owner(struct page *oldpage, struct page *newpage)
37{
38 if (static_branch_unlikely(&page_owner_inited))
39 __copy_page_owner(oldpage, newpage);
40}
48c96a36
JK
41#else
42static inline void reset_page_owner(struct page *page, unsigned int order)
43{
44}
45static inline void set_page_owner(struct page *page,
46 unsigned int order, gfp_t gfp_mask)
47{
48}
e2cfc911
JK
49static inline gfp_t get_page_owner_gfp(struct page *page)
50{
51 return 0;
52}
d435edca
VB
53static inline void copy_page_owner(struct page *oldpage, struct page *newpage)
54{
55}
48c96a36
JK
56#endif /* CONFIG_PAGE_OWNER */
57#endif /* __LINUX_PAGE_OWNER_H */
This page took 0.15288 seconds and 5 git commands to generate.