aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/memcontrol.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/memcontrol.h')
-rw-r--r--include/linux/memcontrol.h37
1 files changed, 33 insertions, 4 deletions
diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h
index 83ae11cbd12c..b0eb29ea0d9c 100644
--- a/include/linux/memcontrol.h
+++ b/include/linux/memcontrol.h
@@ -1273,12 +1273,12 @@ static inline bool mem_cgroup_under_socket_pressure(struct mem_cgroup *memcg)
1273 1273
1274struct kmem_cache *memcg_kmem_get_cache(struct kmem_cache *cachep); 1274struct kmem_cache *memcg_kmem_get_cache(struct kmem_cache *cachep);
1275void memcg_kmem_put_cache(struct kmem_cache *cachep); 1275void memcg_kmem_put_cache(struct kmem_cache *cachep);
1276int memcg_kmem_charge_memcg(struct page *page, gfp_t gfp, int order,
1277 struct mem_cgroup *memcg);
1278 1276
1279#ifdef CONFIG_MEMCG_KMEM 1277#ifdef CONFIG_MEMCG_KMEM
1280int memcg_kmem_charge(struct page *page, gfp_t gfp, int order); 1278int __memcg_kmem_charge(struct page *page, gfp_t gfp, int order);
1281void memcg_kmem_uncharge(struct page *page, int order); 1279void __memcg_kmem_uncharge(struct page *page, int order);
1280int __memcg_kmem_charge_memcg(struct page *page, gfp_t gfp, int order,
1281 struct mem_cgroup *memcg);
1282 1282
1283extern struct static_key_false memcg_kmem_enabled_key; 1283extern struct static_key_false memcg_kmem_enabled_key;
1284extern struct workqueue_struct *memcg_kmem_cache_wq; 1284extern struct workqueue_struct *memcg_kmem_cache_wq;
@@ -1300,6 +1300,26 @@ static inline bool memcg_kmem_enabled(void)
1300 return static_branch_unlikely(&memcg_kmem_enabled_key); 1300 return static_branch_unlikely(&memcg_kmem_enabled_key);
1301} 1301}
1302 1302
1303static inline int memcg_kmem_charge(struct page *page, gfp_t gfp, int order)
1304{
1305 if (memcg_kmem_enabled())
1306 return __memcg_kmem_charge(page, gfp, order);
1307 return 0;
1308}
1309
1310static inline void memcg_kmem_uncharge(struct page *page, int order)
1311{
1312 if (memcg_kmem_enabled())
1313 __memcg_kmem_uncharge(page, order);
1314}
1315
1316static inline int memcg_kmem_charge_memcg(struct page *page, gfp_t gfp,
1317 int order, struct mem_cgroup *memcg)
1318{
1319 if (memcg_kmem_enabled())
1320 return __memcg_kmem_charge_memcg(page, gfp, order, memcg);
1321 return 0;
1322}
1303/* 1323/*
1304 * helper for accessing a memcg's index. It will be used as an index in the 1324 * helper for accessing a memcg's index. It will be used as an index in the
1305 * child cache array in kmem_cache, and also to derive its name. This function 1325 * child cache array in kmem_cache, and also to derive its name. This function
@@ -1325,6 +1345,15 @@ static inline void memcg_kmem_uncharge(struct page *page, int order)
1325{ 1345{
1326} 1346}
1327 1347
1348static inline int __memcg_kmem_charge(struct page *page, gfp_t gfp, int order)
1349{
1350 return 0;
1351}
1352
1353static inline void __memcg_kmem_uncharge(struct page *page, int order)
1354{
1355}
1356
1328#define for_each_memcg_cache_index(_idx) \ 1357#define for_each_memcg_cache_index(_idx) \
1329 for (; NULL; ) 1358 for (; NULL; )
1330 1359