Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp1113651pxb; Thu, 4 Feb 2021 05:35:34 -0800 (PST) X-Google-Smtp-Source: ABdhPJz7vddsBmHm4kjW2iBKSm1v5p087BPtGaaF2MuduXx2kx8b4DAxr96aaz+uhGEuaV7gNvhx X-Received: by 2002:aa7:c884:: with SMTP id p4mr8110299eds.212.1612445734098; Thu, 04 Feb 2021 05:35:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1612445734; cv=none; d=google.com; s=arc-20160816; b=JJT/YZ9i8lixJK8iAlytD7g90YIBf0wSyYH2ZO6yJUpsbcrVqnVXTpzKDafwtba8aG 5T8tkNnGCTCD63zj8M15FmI9j86e2YdsJnZu+09DrPdOl1G898JYla5lb30Jtd1saGmK JYeKjXkj0PUTCAJw3P6TPC82Dp4hTDUb+cqkqja4q9nbaloIFZJh2yNSnYiK5wIs8T/P zEQv+jE/KMbIAYsuRqPH0l0LHjwTFnrfU1I156jzw3uyQ9/M1FO4Wg8bYu8DJXre2rjB b83l4A6CqJmokWH8IzOGy+IKrW42ke9bTjPzhXt+6CDU1dGOI4Ln5eoyAiyAFTuEMqZp YFzw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=dZkOuW12hIR53DrmAky88GTVjhYI+Daf3Iw2dbiv0LQ=; b=SRNfV2ky8IOHDusXCUYh1Nhanae1GSj86FNTHfki6ZAtX03RGQKT4+o0AiwRtKMX/9 p6b3tpORymxkWXrz6SEYm42WRFnDBtabLP5+1U3TrJtcamkleOkf594IRsDAxHjJgnXt sl3cATPFNb/2uasX5TunJFDDrLljH6ldnnHxAp+WDzJNm4pC7kdZpBUq5OE5UlGfUB9n nm0V65iwPoGCMoz/iqdo3nW+lx9a/061odsLLFIim9xq1RNS8CCESdcvNyqo5waKGhDW HSPVU1+qWXWzFqSq8qhoyKGsjjR5WUZur71l3dBy0il8O0wSUBeI5BWwb/BtIEPpK05c 4XLA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.com header.s=susede1 header.b=TdbJToAs; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=NONE dis=NONE) header.from=suse.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id f19si3373275ejb.315.2021.02.04.05.35.07; Thu, 04 Feb 2021 05:35:34 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=susede1 header.b=TdbJToAs; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=NONE dis=NONE) header.from=suse.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236336AbhBDNae (ORCPT + 99 others); Thu, 4 Feb 2021 08:30:34 -0500 Received: from mx2.suse.de ([195.135.220.15]:48668 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236274AbhBDNaJ (ORCPT ); Thu, 4 Feb 2021 08:30:09 -0500 X-Virus-Scanned: by amavisd-new at test-mx.suse.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1612445361; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=dZkOuW12hIR53DrmAky88GTVjhYI+Daf3Iw2dbiv0LQ=; b=TdbJToAsUkuon6LIfJS/gfcAF3TmZpV0MAwilOEN7hAXoGPPHVm9hxn6QvDBt+tZqz9EWZ YLGFA6bNDh1XbUHvzc6eHHJ4diAUPi5gHxG3whr4HO69VvU9F5kZNtSKHBSFXoSVf6fSQi 02kWp38rqG2N7IDfrUyXstGHHbb5y+M= Received: from relay2.suse.de (unknown [195.135.221.27]) by mx2.suse.de (Postfix) with ESMTP id BC3D3AC43; Thu, 4 Feb 2021 13:29:21 +0000 (UTC) Date: Thu, 4 Feb 2021 14:29:21 +0100 From: Michal Hocko To: Johannes Weiner Cc: Andrew Morton , Tejun Heo , Roman Gushchin , linux-mm@kvack.org, cgroups@vger.kernel.org, linux-kernel@vger.kernel.org, kernel-team@fb.com Subject: Re: [PATCH 2/7] mm: memcontrol: kill mem_cgroup_nodeinfo() Message-ID: References: <20210202184746.119084-1-hannes@cmpxchg.org> <20210202184746.119084-3-hannes@cmpxchg.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20210202184746.119084-3-hannes@cmpxchg.org> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue 02-02-21 13:47:41, Johannes Weiner wrote: > No need to encapsulate a simple struct member access. > > Signed-off-by: Johannes Weiner Acked-by: Michal Hocko > --- > include/linux/memcontrol.h | 8 +------- > mm/memcontrol.c | 21 +++++++++++---------- > 2 files changed, 12 insertions(+), 17 deletions(-) > > diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h > index 7a38a1517a05..c7f387a6233e 100644 > --- a/include/linux/memcontrol.h > +++ b/include/linux/memcontrol.h > @@ -602,12 +602,6 @@ void mem_cgroup_uncharge_list(struct list_head *page_list); > > void mem_cgroup_migrate(struct page *oldpage, struct page *newpage); > > -static struct mem_cgroup_per_node * > -mem_cgroup_nodeinfo(struct mem_cgroup *memcg, int nid) > -{ > - return memcg->nodeinfo[nid]; > -} > - > /** > * mem_cgroup_lruvec - get the lru list vector for a memcg & node > * @memcg: memcg of the wanted lruvec > @@ -631,7 +625,7 @@ static inline struct lruvec *mem_cgroup_lruvec(struct mem_cgroup *memcg, > if (!memcg) > memcg = root_mem_cgroup; > > - mz = mem_cgroup_nodeinfo(memcg, pgdat->node_id); > + mz = memcg->nodeinfo[pgdat->node_id]; > lruvec = &mz->lruvec; > out: > /* > diff --git a/mm/memcontrol.c b/mm/memcontrol.c > index 8120d565dd79..7e05a4ebf80f 100644 > --- a/mm/memcontrol.c > +++ b/mm/memcontrol.c > @@ -414,13 +414,14 @@ static int memcg_expand_one_shrinker_map(struct mem_cgroup *memcg, > int size, int old_size) > { > struct memcg_shrinker_map *new, *old; > + struct mem_cgroup_per_node *pn; > int nid; > > lockdep_assert_held(&memcg_shrinker_map_mutex); > > for_each_node(nid) { > - old = rcu_dereference_protected( > - mem_cgroup_nodeinfo(memcg, nid)->shrinker_map, true); > + pn = memcg->nodeinfo[nid]; > + old = rcu_dereference_protected(pn->shrinker_map, true); > /* Not yet online memcg */ > if (!old) > return 0; > @@ -433,7 +434,7 @@ static int memcg_expand_one_shrinker_map(struct mem_cgroup *memcg, > memset(new->map, (int)0xff, old_size); > memset((void *)new->map + old_size, 0, size - old_size); > > - rcu_assign_pointer(memcg->nodeinfo[nid]->shrinker_map, new); > + rcu_assign_pointer(pn->shrinker_map, new); > call_rcu(&old->rcu, memcg_free_shrinker_map_rcu); > } > > @@ -450,7 +451,7 @@ static void memcg_free_shrinker_maps(struct mem_cgroup *memcg) > return; > > for_each_node(nid) { > - pn = mem_cgroup_nodeinfo(memcg, nid); > + pn = memcg->nodeinfo[nid]; > map = rcu_dereference_protected(pn->shrinker_map, true); > kvfree(map); > rcu_assign_pointer(pn->shrinker_map, NULL); > @@ -713,7 +714,7 @@ static void mem_cgroup_remove_from_trees(struct mem_cgroup *memcg) > int nid; > > for_each_node(nid) { > - mz = mem_cgroup_nodeinfo(memcg, nid); > + mz = memcg->nodeinfo[nid]; > mctz = soft_limit_tree_node(nid); > if (mctz) > mem_cgroup_remove_exceeded(mz, mctz); > @@ -796,7 +797,7 @@ parent_nodeinfo(struct mem_cgroup_per_node *pn, int nid) > parent = parent_mem_cgroup(pn->memcg); > if (!parent) > return NULL; > - return mem_cgroup_nodeinfo(parent, nid); > + return parent->nodeinfo[nid]; > } > > void __mod_memcg_lruvec_state(struct lruvec *lruvec, enum node_stat_item idx, > @@ -1163,7 +1164,7 @@ struct mem_cgroup *mem_cgroup_iter(struct mem_cgroup *root, > if (reclaim) { > struct mem_cgroup_per_node *mz; > > - mz = mem_cgroup_nodeinfo(root, reclaim->pgdat->node_id); > + mz = root->nodeinfo[reclaim->pgdat->node_id]; > iter = &mz->iter; > > if (prev && reclaim->generation != iter->generation) > @@ -1265,7 +1266,7 @@ static void __invalidate_reclaim_iterators(struct mem_cgroup *from, > int nid; > > for_each_node(nid) { > - mz = mem_cgroup_nodeinfo(from, nid); > + mz = from->nodeinfo[nid]; > iter = &mz->iter; > cmpxchg(&iter->position, dead_memcg, NULL); > } > @@ -2438,7 +2439,7 @@ static int memcg_hotplug_cpu_dead(unsigned int cpu) > struct mem_cgroup_per_node *pn; > long x; > > - pn = mem_cgroup_nodeinfo(memcg, nid); > + pn = memcg->nodeinfo[nid]; > lstatc = per_cpu_ptr(pn->lruvec_stat_cpu, cpu); > > x = lstatc->count[i]; > @@ -4145,7 +4146,7 @@ static int memcg_stat_show(struct seq_file *m, void *v) > unsigned long file_cost = 0; > > for_each_online_pgdat(pgdat) { > - mz = mem_cgroup_nodeinfo(memcg, pgdat->node_id); > + mz = memcg->nodeinfo[pgdat->node_id]; > > anon_cost += mz->lruvec.anon_cost; > file_cost += mz->lruvec.file_cost; > -- > 2.30.0 > -- Michal Hocko SUSE Labs