Merge branch 'address-masking'
[linux-2.6-block.git] / include / linux / page_owner.h
CommitLineData
b2441318 1/* SPDX-License-Identifier: GPL-2.0 */
48c96a36
JK
2#ifndef __LINUX_PAGE_OWNER_H
3#define __LINUX_PAGE_OWNER_H
4
7dd80b8a
VB
5#include <linux/jump_label.h>
6
48c96a36 7#ifdef CONFIG_PAGE_OWNER
7dd80b8a 8extern struct static_key_false page_owner_inited;
48c96a36
JK
9extern struct page_ext_operations page_owner_ops;
10
0093de69 11extern void __reset_page_owner(struct page *page, unsigned short order);
48c96a36 12extern void __set_page_owner(struct page *page,
0093de69 13 unsigned short order, gfp_t gfp_mask);
46d44d09
ZY
14extern void __split_page_owner(struct page *page, int old_order,
15 int new_order);
19138349 16extern void __folio_copy_owner(struct folio *newfolio, struct folio *old);
7cd12b4a 17extern void __set_page_owner_migrate_reason(struct page *page, int reason);
8bf6f451 18extern void __dump_page_owner(const struct page *page);
e2f612e6
JK
19extern void pagetypeinfo_showmixedcount_print(struct seq_file *m,
20 pg_data_t *pgdat, struct zone *zone);
48c96a36 21
0093de69 22static inline void reset_page_owner(struct page *page, unsigned short order)
48c96a36 23{
7dd80b8a
VB
24 if (static_branch_unlikely(&page_owner_inited))
25 __reset_page_owner(page, order);
48c96a36
JK
26}
27
28static inline void set_page_owner(struct page *page,
0093de69 29 unsigned short order, gfp_t gfp_mask)
48c96a36 30{
7dd80b8a
VB
31 if (static_branch_unlikely(&page_owner_inited))
32 __set_page_owner(page, order, gfp_mask);
48c96a36 33}
e2cfc911 34
46d44d09
ZY
35static inline void split_page_owner(struct page *page, int old_order,
36 int new_order)
e2cfc911 37{
7dd80b8a 38 if (static_branch_unlikely(&page_owner_inited))
46d44d09 39 __split_page_owner(page, old_order, new_order);
e2cfc911 40}
19138349 41static inline void folio_copy_owner(struct folio *newfolio, struct folio *old)
d435edca
VB
42{
43 if (static_branch_unlikely(&page_owner_inited))
19138349 44 __folio_copy_owner(newfolio, old);
d435edca 45}
7cd12b4a
VB
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}
8bf6f451 51static inline void dump_page_owner(const struct page *page)
4e462112
VB
52{
53 if (static_branch_unlikely(&page_owner_inited))
54 __dump_page_owner(page);
55}
48c96a36 56#else
0093de69 57static inline void reset_page_owner(struct page *page, unsigned short order)
48c96a36
JK
58{
59}
60static inline void set_page_owner(struct page *page,
46d44d09 61 unsigned short order, gfp_t gfp_mask)
48c96a36
JK
62{
63}
46d44d09
ZY
64static inline void split_page_owner(struct page *page, int old_order,
65 int new_order)
e2cfc911 66{
e2cfc911 67}
19138349 68static inline void folio_copy_owner(struct folio *newfolio, struct folio *folio)
d435edca
VB
69{
70}
7cd12b4a
VB
71static inline void set_page_owner_migrate_reason(struct page *page, int reason)
72{
73}
8bf6f451 74static inline void dump_page_owner(const struct page *page)
4e462112
VB
75{
76}
48c96a36
JK
77#endif /* CONFIG_PAGE_OWNER */
78#endif /* __LINUX_PAGE_OWNER_H */