diff options
Diffstat (limited to 'include/linux/memcontrol.h')
-rw-r--r-- | include/linux/memcontrol.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h index 44c41462be33..2cd4359cb38c 100644 --- a/include/linux/memcontrol.h +++ b/include/linux/memcontrol.h | |||
@@ -668,6 +668,7 @@ static inline unsigned long lruvec_page_state_local(struct lruvec *lruvec, | |||
668 | 668 | ||
669 | void __mod_lruvec_state(struct lruvec *lruvec, enum node_stat_item idx, | 669 | void __mod_lruvec_state(struct lruvec *lruvec, enum node_stat_item idx, |
670 | int val); | 670 | int val); |
671 | void __mod_lruvec_slab_state(void *p, enum node_stat_item idx, int val); | ||
671 | 672 | ||
672 | static inline void mod_lruvec_state(struct lruvec *lruvec, | 673 | static inline void mod_lruvec_state(struct lruvec *lruvec, |
673 | enum node_stat_item idx, int val) | 674 | enum node_stat_item idx, int val) |
@@ -1072,6 +1073,14 @@ static inline void mod_lruvec_page_state(struct page *page, | |||
1072 | mod_node_page_state(page_pgdat(page), idx, val); | 1073 | mod_node_page_state(page_pgdat(page), idx, val); |
1073 | } | 1074 | } |
1074 | 1075 | ||
1076 | static inline void __mod_lruvec_slab_state(void *p, enum node_stat_item idx, | ||
1077 | int val) | ||
1078 | { | ||
1079 | struct page *page = virt_to_head_page(p); | ||
1080 | |||
1081 | __mod_node_page_state(page_pgdat(page), idx, val); | ||
1082 | } | ||
1083 | |||
1075 | static inline | 1084 | static inline |
1076 | unsigned long mem_cgroup_soft_limit_reclaim(pg_data_t *pgdat, int order, | 1085 | unsigned long mem_cgroup_soft_limit_reclaim(pg_data_t *pgdat, int order, |
1077 | gfp_t gfp_mask, | 1086 | gfp_t gfp_mask, |
@@ -1159,6 +1168,16 @@ static inline void __dec_lruvec_page_state(struct page *page, | |||
1159 | __mod_lruvec_page_state(page, idx, -1); | 1168 | __mod_lruvec_page_state(page, idx, -1); |
1160 | } | 1169 | } |
1161 | 1170 | ||
1171 | static inline void __inc_lruvec_slab_state(void *p, enum node_stat_item idx) | ||
1172 | { | ||
1173 | __mod_lruvec_slab_state(p, idx, 1); | ||
1174 | } | ||
1175 | |||
1176 | static inline void __dec_lruvec_slab_state(void *p, enum node_stat_item idx) | ||
1177 | { | ||
1178 | __mod_lruvec_slab_state(p, idx, -1); | ||
1179 | } | ||
1180 | |||
1162 | /* idx can be of type enum memcg_stat_item or node_stat_item */ | 1181 | /* idx can be of type enum memcg_stat_item or node_stat_item */ |
1163 | static inline void inc_memcg_state(struct mem_cgroup *memcg, | 1182 | static inline void inc_memcg_state(struct mem_cgroup *memcg, |
1164 | int idx) | 1183 | int idx) |