]>
Commit | Line | Data |
---|---|---|
e900a918 DW |
1 | // SPDX-License-Identifier: GPL-2.0 |
2 | // Copyright(c) 2018 Intel Corporation. All rights reserved. | |
3 | #ifndef _MM_SHUFFLE_H | |
4 | #define _MM_SHUFFLE_H | |
5 | #include <linux/jump_label.h> | |
6 | ||
5e0a760b | 7 | #define SHUFFLE_ORDER MAX_PAGE_ORDER |
e900a918 DW |
8 | |
9 | #ifdef CONFIG_SHUFFLE_PAGE_ALLOCATOR | |
10 | DECLARE_STATIC_KEY_FALSE(page_alloc_shuffle_key); | |
e900a918 | 11 | extern void __shuffle_free_memory(pg_data_t *pgdat); |
a2129f24 | 12 | extern bool shuffle_pick_tail(void); |
f9f74dc2 | 13 | static inline void __meminit shuffle_free_memory(pg_data_t *pgdat) |
e900a918 DW |
14 | { |
15 | if (!static_branch_unlikely(&page_alloc_shuffle_key)) | |
16 | return; | |
17 | __shuffle_free_memory(pgdat); | |
18 | } | |
19 | ||
20 | extern void __shuffle_zone(struct zone *z); | |
f9f74dc2 | 21 | static inline void __meminit shuffle_zone(struct zone *z) |
e900a918 DW |
22 | { |
23 | if (!static_branch_unlikely(&page_alloc_shuffle_key)) | |
24 | return; | |
25 | __shuffle_zone(z); | |
26 | } | |
97500a4a DW |
27 | |
28 | static inline bool is_shuffle_order(int order) | |
29 | { | |
30 | if (!static_branch_unlikely(&page_alloc_shuffle_key)) | |
31 | return false; | |
32 | return order >= SHUFFLE_ORDER; | |
33 | } | |
e900a918 | 34 | #else |
a2129f24 AD |
35 | static inline bool shuffle_pick_tail(void) |
36 | { | |
37 | return false; | |
38 | } | |
39 | ||
e900a918 DW |
40 | static inline void shuffle_free_memory(pg_data_t *pgdat) |
41 | { | |
42 | } | |
43 | ||
44 | static inline void shuffle_zone(struct zone *z) | |
45 | { | |
46 | } | |
47 | ||
97500a4a DW |
48 | static inline bool is_shuffle_order(int order) |
49 | { | |
50 | return false; | |
51 | } | |
e900a918 DW |
52 | #endif |
53 | #endif /* _MM_SHUFFLE_H */ |