1 /* SPDX-License-Identifier: MIT */ 2 /* 3 * Copyright © 2023-2024 Intel Corporation 4 */ 5 6 #ifndef _CGROUP_DMEM_H 7 #define _CGROUP_DMEM_H 8 9 #include <linux/types.h> 10 #include <linux/llist.h> 11 12 struct dmem_cgroup_pool_state; 13 14 /* Opaque definition of a cgroup region, used internally */ 15 struct dmem_cgroup_region; 16 17 #if IS_ENABLED(CONFIG_CGROUP_DMEM) 18 struct dmem_cgroup_region *dmem_cgroup_register_region(u64 size, const char *name_fmt, ...) __printf(2,3); 19 void dmem_cgroup_unregister_region(struct dmem_cgroup_region *region); 20 int dmem_cgroup_try_charge(struct dmem_cgroup_region *region, u64 size, 21 struct dmem_cgroup_pool_state **ret_pool, 22 struct dmem_cgroup_pool_state **ret_limit_pool); 23 void dmem_cgroup_uncharge(struct dmem_cgroup_pool_state *pool, u64 size); 24 bool dmem_cgroup_state_evict_valuable(struct dmem_cgroup_pool_state *limit_pool, 25 struct dmem_cgroup_pool_state *test_pool, 26 bool ignore_low, bool *ret_hit_low); 27 28 void dmem_cgroup_pool_state_put(struct dmem_cgroup_pool_state *pool); 29 #else 30 static inline __printf(2,3) struct dmem_cgroup_region * 31 dmem_cgroup_register_region(u64 size, const char *name_fmt, ...) 32 { 33 return NULL; 34 } 35 36 static inline void dmem_cgroup_unregister_region(struct dmem_cgroup_region *region) 37 { } 38 39 static inline int dmem_cgroup_try_charge(struct dmem_cgroup_region *region, u64 size, 40 struct dmem_cgroup_pool_state **ret_pool, 41 struct dmem_cgroup_pool_state **ret_limit_pool) 42 { 43 *ret_pool = NULL; 44 45 if (ret_limit_pool) 46 *ret_limit_pool = NULL; 47 48 return 0; 49 } 50 51 static inline void dmem_cgroup_uncharge(struct dmem_cgroup_pool_state *pool, u64 size) 52 { } 53 54 static inline 55 bool dmem_cgroup_state_evict_valuable(struct dmem_cgroup_pool_state *limit_pool, 56 struct dmem_cgroup_pool_state *test_pool, 57 bool ignore_low, bool *ret_hit_low) 58 { 59 return true; 60 } 61 62 static inline void dmem_cgroup_pool_state_put(struct dmem_cgroup_pool_state *pool) 63 { } 64 65 #endif 66 #endif /* _CGROUP_DMEM_H */ 67