diff options
Diffstat (limited to 'include/linux/memcontrol.h')
| -rw-r--r-- | include/linux/memcontrol.h | 58 | 
1 files changed, 36 insertions, 22 deletions
diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h index a7a0a1a5c8d5..d275c72c4f8e 100644 --- a/include/linux/memcontrol.h +++ b/include/linux/memcontrol.h @@ -106,7 +106,7 @@ struct lruvec_stat {   */  struct memcg_shrinker_map {  	struct rcu_head rcu; -	unsigned long map[0]; +	unsigned long map[];  };  /* @@ -148,7 +148,7 @@ struct mem_cgroup_threshold_ary {  	/* Size of entries[] */  	unsigned int size;  	/* Array of thresholds */ -	struct mem_cgroup_threshold entries[0]; +	struct mem_cgroup_threshold entries[];  };  struct mem_cgroup_thresholds { @@ -695,6 +695,7 @@ static inline unsigned long lruvec_page_state_local(struct lruvec *lruvec,  void __mod_lruvec_state(struct lruvec *lruvec, enum node_stat_item idx,  			int val);  void __mod_lruvec_slab_state(void *p, enum node_stat_item idx, int val); +void mod_memcg_obj_state(void *p, int idx, int val);  static inline void mod_lruvec_state(struct lruvec *lruvec,  				    enum node_stat_item idx, int val) @@ -1123,6 +1124,10 @@ static inline void __mod_lruvec_slab_state(void *p, enum node_stat_item idx,  	__mod_node_page_state(page_pgdat(page), idx, val);  } +static inline void mod_memcg_obj_state(void *p, int idx, int val) +{ +} +  static inline  unsigned long mem_cgroup_soft_limit_reclaim(pg_data_t *pgdat, int order,  					    gfp_t gfp_mask, @@ -1362,12 +1367,11 @@ struct kmem_cache *memcg_kmem_get_cache(struct kmem_cache *cachep);  void memcg_kmem_put_cache(struct kmem_cache *cachep);  #ifdef CONFIG_MEMCG_KMEM -int __memcg_kmem_charge(struct page *page, gfp_t gfp, int order); -void __memcg_kmem_uncharge(struct page *page, int order); -int __memcg_kmem_charge_memcg(struct page *page, gfp_t gfp, int order, -			      struct mem_cgroup *memcg); -void __memcg_kmem_uncharge_memcg(struct mem_cgroup *memcg, -				 unsigned int nr_pages); +int __memcg_kmem_charge(struct mem_cgroup *memcg, gfp_t gfp, +			unsigned int nr_pages); +void __memcg_kmem_uncharge(struct mem_cgroup *memcg, unsigned int nr_pages); +int __memcg_kmem_charge_page(struct page *page, gfp_t gfp, int order); +void __memcg_kmem_uncharge_page(struct page *page, int order);  extern struct static_key_false memcg_kmem_enabled_key;  extern struct workqueue_struct *memcg_kmem_cache_wq; @@ -1389,32 +1393,33 @@ static inline bool memcg_kmem_enabled(void)  	return static_branch_unlikely(&memcg_kmem_enabled_key);  } -static inline int memcg_kmem_charge(struct page *page, gfp_t gfp, int order) +static inline int memcg_kmem_charge_page(struct page *page, gfp_t gfp, +					 int order)  {  	if (memcg_kmem_enabled()) -		return __memcg_kmem_charge(page, gfp, order); +		return __memcg_kmem_charge_page(page, gfp, order);  	return 0;  } -static inline void memcg_kmem_uncharge(struct page *page, int order) +static inline void memcg_kmem_uncharge_page(struct page *page, int order)  {  	if (memcg_kmem_enabled()) -		__memcg_kmem_uncharge(page, order); +		__memcg_kmem_uncharge_page(page, order);  } -static inline int memcg_kmem_charge_memcg(struct page *page, gfp_t gfp, -					  int order, struct mem_cgroup *memcg) +static inline int memcg_kmem_charge(struct mem_cgroup *memcg, gfp_t gfp, +				    unsigned int nr_pages)  {  	if (memcg_kmem_enabled()) -		return __memcg_kmem_charge_memcg(page, gfp, order, memcg); +		return __memcg_kmem_charge(memcg, gfp, nr_pages);  	return 0;  } -static inline void memcg_kmem_uncharge_memcg(struct page *page, int order, -					     struct mem_cgroup *memcg) +static inline void memcg_kmem_uncharge(struct mem_cgroup *memcg, +				       unsigned int nr_pages)  {  	if (memcg_kmem_enabled()) -		__memcg_kmem_uncharge_memcg(memcg, 1 << order); +		__memcg_kmem_uncharge(memcg, nr_pages);  }  /* @@ -1427,23 +1432,27 @@ static inline int memcg_cache_id(struct mem_cgroup *memcg)  	return memcg ? memcg->kmemcg_id : -1;  } +struct mem_cgroup *mem_cgroup_from_obj(void *p); +  #else -static inline int memcg_kmem_charge(struct page *page, gfp_t gfp, int order) +static inline int memcg_kmem_charge_page(struct page *page, gfp_t gfp, +					 int order)  {  	return 0;  } -static inline void memcg_kmem_uncharge(struct page *page, int order) +static inline void memcg_kmem_uncharge_page(struct page *page, int order)  {  } -static inline int __memcg_kmem_charge(struct page *page, gfp_t gfp, int order) +static inline int __memcg_kmem_charge_page(struct page *page, gfp_t gfp, +					   int order)  {  	return 0;  } -static inline void __memcg_kmem_uncharge(struct page *page, int order) +static inline void __memcg_kmem_uncharge_page(struct page *page, int order)  {  } @@ -1468,6 +1477,11 @@ static inline void memcg_put_cache_ids(void)  {  } +static inline struct mem_cgroup *mem_cgroup_from_obj(void *p) +{ +       return NULL; +} +  #endif /* CONFIG_MEMCG_KMEM */  #endif /* _LINUX_MEMCONTROL_H */  |