Line data Source code
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 : 7 : #define SHUFFLE_ORDER (MAX_ORDER-1) 8 : 9 : #ifdef CONFIG_SHUFFLE_PAGE_ALLOCATOR 10 : DECLARE_STATIC_KEY_FALSE(page_alloc_shuffle_key); 11 : extern void __shuffle_free_memory(pg_data_t *pgdat); 12 : extern bool shuffle_pick_tail(void); 13 : static inline void shuffle_free_memory(pg_data_t *pgdat) 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); 21 : static inline void shuffle_zone(struct zone *z) 22 : { 23 : if (!static_branch_unlikely(&page_alloc_shuffle_key)) 24 : return; 25 : __shuffle_zone(z); 26 : } 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 : } 34 : #else 35 : static inline bool shuffle_pick_tail(void) 36 : { 37 : return false; 38 : } 39 : 40 1 : static inline void shuffle_free_memory(pg_data_t *pgdat) 41 : { 42 1 : } 43 : 44 : static inline void shuffle_zone(struct zone *z) 45 : { 46 : } 47 : 48 37217 : static inline bool is_shuffle_order(int order) 49 : { 50 37217 : return false; 51 : } 52 : #endif 53 : #endif /* _MM_SHUFFLE_H */