Warning: This file is not a C or C++ file. It does not have highlighting.
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 |
8 | extern struct static_key_false page_owner_inited; |
9 | extern struct page_ext_operations page_owner_ops; |
10 | |
11 | extern void __reset_page_owner(struct page *page, unsigned short order); |
12 | extern void __set_page_owner(struct page *page, |
13 | unsigned short order, gfp_t gfp_mask); |
14 | extern void __split_page_owner(struct page *page, unsigned int nr); |
15 | extern void __folio_copy_owner(struct folio *newfolio, struct folio *old); |
16 | extern void __set_page_owner_migrate_reason(struct page *page, int reason); |
17 | extern void __dump_page_owner(const struct page *page); |
18 | extern void pagetypeinfo_showmixedcount_print(struct seq_file *m, |
19 | pg_data_t *pgdat, struct zone *zone); |
20 | |
21 | static inline void reset_page_owner(struct page *page, unsigned short order) |
22 | { |
23 | if (static_branch_unlikely(&page_owner_inited)) |
24 | __reset_page_owner(page, order); |
25 | } |
26 | |
27 | static inline void set_page_owner(struct page *page, |
28 | unsigned short order, gfp_t gfp_mask) |
29 | { |
30 | if (static_branch_unlikely(&page_owner_inited)) |
31 | __set_page_owner(page, order, gfp_mask); |
32 | } |
33 | |
34 | static inline void split_page_owner(struct page *page, unsigned int nr) |
35 | { |
36 | if (static_branch_unlikely(&page_owner_inited)) |
37 | __split_page_owner(page, nr); |
38 | } |
39 | static inline void folio_copy_owner(struct folio *newfolio, struct folio *old) |
40 | { |
41 | if (static_branch_unlikely(&page_owner_inited)) |
42 | __folio_copy_owner(newfolio, old); |
43 | } |
44 | static 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 | } |
49 | static inline void dump_page_owner(const struct page *page) |
50 | { |
51 | if (static_branch_unlikely(&page_owner_inited)) |
52 | __dump_page_owner(page); |
53 | } |
54 | #else |
55 | static inline void reset_page_owner(struct page *page, unsigned short order) |
56 | { |
57 | } |
58 | static inline void set_page_owner(struct page *page, |
59 | unsigned int order, gfp_t gfp_mask) |
60 | { |
61 | } |
62 | static inline void split_page_owner(struct page *page, |
63 | unsigned short order) |
64 | { |
65 | } |
66 | static inline void folio_copy_owner(struct folio *newfolio, struct folio *folio) |
67 | { |
68 | } |
69 | static inline void set_page_owner_migrate_reason(struct page *page, int reason) |
70 | { |
71 | } |
72 | static inline void dump_page_owner(const struct page *page) |
73 | { |
74 | } |
75 | #endif /* CONFIG_PAGE_OWNER */ |
76 | #endif /* __LINUX_PAGE_OWNER_H */ |
77 |
Warning: This file is not a C or C++ file. It does not have highlighting.