| From: Kefeng Wang <wangkefeng.wang@huawei.com> |
| Subject: mm: memcontrol: remove page_memcg() |
| Date: Fri, 24 May 2024 09:49:50 +0800 |
| |
| The page_memcg() only called by mod_memcg_page_state(), so squash it to |
| cleanup page_memcg(). |
| |
| Link: https://lkml.kernel.org/r/20240524014950.187805-1-wangkefeng.wang@huawei.com |
| Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com> |
| Acked-by: Michal Hocko <mhocko@suse.com> |
| Cc: Johannes Weiner <hannes@cmpxchg.org> |
| Cc: Matthew Wilcox <willy@infradead.org> |
| Cc: Muchun Song <muchun.song@linux.dev> |
| Cc: Roman Gushchin <roman.gushchin@linux.dev> |
| Cc: Shakeel Butt <shakeel.butt@linux.dev> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| --- |
| |
| include/linux/memcontrol.h | 14 ++------------ |
| mm/memcontrol.c | 2 +- |
| 2 files changed, 3 insertions(+), 13 deletions(-) |
| |
| --- a/include/linux/memcontrol.h~mm-memcontrol-remove-page_memcg |
| +++ a/include/linux/memcontrol.h |
| @@ -443,11 +443,6 @@ static inline struct mem_cgroup *folio_m |
| return __folio_memcg(folio); |
| } |
| |
| -static inline struct mem_cgroup *page_memcg(struct page *page) |
| -{ |
| - return folio_memcg(page_folio(page)); |
| -} |
| - |
| /** |
| * folio_memcg_rcu - Locklessly get the memory cgroup associated with a folio. |
| * @folio: Pointer to the folio. |
| @@ -1014,7 +1009,7 @@ static inline void mod_memcg_page_state( |
| return; |
| |
| rcu_read_lock(); |
| - memcg = page_memcg(page); |
| + memcg = folio_memcg(page_folio(page)); |
| if (memcg) |
| mod_memcg_state(memcg, idx, val); |
| rcu_read_unlock(); |
| @@ -1133,11 +1128,6 @@ static inline struct mem_cgroup *folio_m |
| return NULL; |
| } |
| |
| -static inline struct mem_cgroup *page_memcg(struct page *page) |
| -{ |
| - return NULL; |
| -} |
| - |
| static inline struct mem_cgroup *folio_memcg_rcu(struct folio *folio) |
| { |
| WARN_ON_ONCE(!rcu_read_lock_held()); |
| @@ -1636,7 +1626,7 @@ static inline void unlock_page_lruvec_ir |
| spin_unlock_irqrestore(&lruvec->lru_lock, flags); |
| } |
| |
| -/* Test requires a stable page->memcg binding, see page_memcg() */ |
| +/* Test requires a stable folio->memcg binding, see folio_memcg() */ |
| static inline bool folio_matches_lruvec(struct folio *folio, |
| struct lruvec *lruvec) |
| { |
| --- a/mm/memcontrol.c~mm-memcontrol-remove-page_memcg |
| +++ a/mm/memcontrol.c |
| @@ -3807,7 +3807,7 @@ void __memcg_slab_free_hook(struct kmem_ |
| #endif /* CONFIG_MEMCG_KMEM */ |
| |
| /* |
| - * Because page_memcg(head) is not set on tails, set it now. |
| + * Because folio_memcg(head) is not set on tails, set it now. |
| */ |
| void split_page_memcg(struct page *head, int old_order, int new_order) |
| { |
| _ |