On Wed 30-06-21 05:00:19, Matthew Wilcox wrote: > By using the node id in mem_cgroup_update_tree(), we can delete > soft_limit_tree_from_page() and mem_cgroup_page_nodeinfo(). Saves 42 > bytes of kernel text on my config. > > Signed-off-by: Matthew Wilcox (Oracle) <willy@xxxxxxxxxxxxx> Acked-by: Michal Hocko <mhocko@xxxxxxxx> Thanks! > --- > mm/memcontrol.c | 24 ++++-------------------- > 1 file changed, 4 insertions(+), 20 deletions(-) > > diff --git a/mm/memcontrol.c b/mm/memcontrol.c > index 25cad0fb7d4e..29b28a050707 100644 > --- a/mm/memcontrol.c > +++ b/mm/memcontrol.c > @@ -446,28 +446,12 @@ ino_t page_cgroup_ino(struct page *page) > return ino; > } > > -static struct mem_cgroup_per_node * > -mem_cgroup_page_nodeinfo(struct mem_cgroup *memcg, struct page *page) > -{ > - int nid = page_to_nid(page); > - > - return memcg->nodeinfo[nid]; > -} > - > static struct mem_cgroup_tree_per_node * > soft_limit_tree_node(int nid) > { > return soft_limit_tree.rb_tree_per_node[nid]; > } > > -static struct mem_cgroup_tree_per_node * > -soft_limit_tree_from_page(struct page *page) > -{ > - int nid = page_to_nid(page); > - > - return soft_limit_tree.rb_tree_per_node[nid]; > -} > - > static void __mem_cgroup_insert_exceeded(struct mem_cgroup_per_node *mz, > struct mem_cgroup_tree_per_node *mctz, > unsigned long new_usage_in_excess) > @@ -538,13 +522,13 @@ static unsigned long soft_limit_excess(struct mem_cgroup *memcg) > return excess; > } > > -static void mem_cgroup_update_tree(struct mem_cgroup *memcg, struct page *page) > +static void mem_cgroup_update_tree(struct mem_cgroup *memcg, int nid) > { > unsigned long excess; > struct mem_cgroup_per_node *mz; > struct mem_cgroup_tree_per_node *mctz; > > - mctz = soft_limit_tree_from_page(page); > + mctz = soft_limit_tree_node(nid); > if (!mctz) > return; > /* > @@ -552,7 +536,7 @@ static void mem_cgroup_update_tree(struct mem_cgroup *memcg, struct page *page) > * because their event counter is not touched. > */ > for (; memcg; memcg = parent_mem_cgroup(memcg)) { > - mz = mem_cgroup_page_nodeinfo(memcg, page); > + mz = memcg->nodeinfo[nid]; > excess = soft_limit_excess(memcg); > /* > * We have to update the tree if mz is on RB-tree or > @@ -879,7 +863,7 @@ static void memcg_check_events(struct mem_cgroup *memcg, struct page *page) > MEM_CGROUP_TARGET_SOFTLIMIT); > mem_cgroup_threshold(memcg); > if (unlikely(do_softlimit)) > - mem_cgroup_update_tree(memcg, page); > + mem_cgroup_update_tree(memcg, page_to_nid(page)); > } > } > > -- > 2.30.2 -- Michal Hocko SUSE Labs