Blame view
mm/shuffle.h
1.51 KB
e900a918b mm: shuffle initi... |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
// SPDX-License-Identifier: GPL-2.0 // Copyright(c) 2018 Intel Corporation. All rights reserved. #ifndef _MM_SHUFFLE_H #define _MM_SHUFFLE_H #include <linux/jump_label.h> /* * SHUFFLE_ENABLE is called from the command line enabling path, or by * platform-firmware enabling that indicates the presence of a * direct-mapped memory-side-cache. SHUFFLE_FORCE_DISABLE is called from * the command line path and overrides any previous or future * SHUFFLE_ENABLE. */ enum mm_shuffle_ctl { SHUFFLE_ENABLE, SHUFFLE_FORCE_DISABLE, }; #define SHUFFLE_ORDER (MAX_ORDER-1) #ifdef CONFIG_SHUFFLE_PAGE_ALLOCATOR DECLARE_STATIC_KEY_FALSE(page_alloc_shuffle_key); extern void page_alloc_shuffle(enum mm_shuffle_ctl ctl); extern void __shuffle_free_memory(pg_data_t *pgdat); static inline void shuffle_free_memory(pg_data_t *pgdat) { if (!static_branch_unlikely(&page_alloc_shuffle_key)) return; __shuffle_free_memory(pgdat); } extern void __shuffle_zone(struct zone *z); static inline void shuffle_zone(struct zone *z) { if (!static_branch_unlikely(&page_alloc_shuffle_key)) return; __shuffle_zone(z); } |
97500a4a5 mm: maintain rand... |
39 40 41 42 43 44 45 |
static inline bool is_shuffle_order(int order) { if (!static_branch_unlikely(&page_alloc_shuffle_key)) return false; return order >= SHUFFLE_ORDER; } |
e900a918b mm: shuffle initi... |
46 47 48 49 50 51 52 53 54 55 56 57 |
#else static inline void shuffle_free_memory(pg_data_t *pgdat) { } static inline void shuffle_zone(struct zone *z) { } static inline void page_alloc_shuffle(enum mm_shuffle_ctl ctl) { } |
97500a4a5 mm: maintain rand... |
58 59 60 61 62 |
static inline bool is_shuffle_order(int order) { return false; } |
e900a918b mm: shuffle initi... |
63 64 |
#endif #endif /* _MM_SHUFFLE_H */ |