shuffle.h (1184B)
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 10DECLARE_STATIC_KEY_FALSE(page_alloc_shuffle_key); 11extern void __shuffle_free_memory(pg_data_t *pgdat); 12extern bool shuffle_pick_tail(void); 13static inline void __meminit 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 20extern void __shuffle_zone(struct zone *z); 21static inline void __meminit shuffle_zone(struct zone *z) 22{ 23 if (!static_branch_unlikely(&page_alloc_shuffle_key)) 24 return; 25 __shuffle_zone(z); 26} 27 28static 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 35static inline bool shuffle_pick_tail(void) 36{ 37 return false; 38} 39 40static inline void shuffle_free_memory(pg_data_t *pgdat) 41{ 42} 43 44static inline void shuffle_zone(struct zone *z) 45{ 46} 47 48static inline bool is_shuffle_order(int order) 49{ 50 return false; 51} 52#endif 53#endif /* _MM_SHUFFLE_H */