Message ID | 20210721063926.3024591-8-ying.huang@intel.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | [-V11,1/9] mm/numa: automatically generate node migration order | expand |
On 21 Jul 2021, at 2:39, Huang Ying wrote: > From: Dave Hansen <dave.hansen@linux.intel.com> > > Global reclaim aims to reduce the amount of memory used on a given node or > set of nodes. Migrating pages to another node serves this purpose. > > memcg reclaim is different. Its goal is to reduce the total memory > consumption of the entire memcg, across all nodes. Migration does not > assist memcg reclaim because it just moves page contents between nodes > rather than actually reducing memory consumption. > > Link: https://lkml.kernel.org/r/20210715055145.195411-9-ying.huang@intel.com > Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com> > Signed-off-by: "Huang, Ying" <ying.huang@intel.com> > Suggested-by: Yang Shi <yang.shi@linux.alibaba.com> > Reviewed-by: Yang Shi <shy828301@gmail.com> > Cc: Michal Hocko <mhocko@suse.com> > Cc: Wei Xu <weixugc@google.com> > Cc: Oscar Salvador <osalvador@suse.de> > Cc: Zi Yan <ziy@nvidia.com> > Cc: David Rientjes <rientjes@google.com> > Cc: Dan Williams <dan.j.williams@intel.com> > Cc: David Hildenbrand <david@redhat.com> > Cc: Greg Thelen <gthelen@google.com> > Cc: Keith Busch <kbusch@kernel.org> > Signed-off-by: Andrew Morton <akpm@linux-foundation.org> > --- > mm/vmscan.c | 9 +++++++-- > 1 file changed, 7 insertions(+), 2 deletions(-) LGTM. Reviewed-by: Zi Yan <ziy@nvidia.com>. Should this be folded into Patch 4 when can_demote() is introduced? — Best Regards, Yan, Zi
On 7/21/21 2:38 PM, Zi Yan wrote: > On 21 Jul 2021, at 2:39, Huang Ying wrote: >> From: Dave Hansen <dave.hansen@linux.intel.com> >> >> Global reclaim aims to reduce the amount of memory used on a >> given node or set of nodes. Migrating pages to another node >> serves this purpose. >> >> memcg reclaim is different. Its goal is to reduce the total >> memory consumption of the entire memcg, across all nodes. >> Migration does not assist memcg reclaim because it just moves >> page contents between nodes rather than actually reducing memory >> consumption. ... > Should this be folded into Patch 4 when can_demote() is > introduced? I guess it could be. But, it's logically separate since it has its own justification which is rather discrete. I think it's best to keep it separate.
On 21 Jul 2021, at 17:58, Dave Hansen wrote: > On 7/21/21 2:38 PM, Zi Yan wrote: >> On 21 Jul 2021, at 2:39, Huang Ying wrote: >>> From: Dave Hansen <dave.hansen@linux.intel.com> >>> >>> Global reclaim aims to reduce the amount of memory used on a >>> given node or set of nodes. Migrating pages to another node >>> serves this purpose. >>> >>> memcg reclaim is different. Its goal is to reduce the total >>> memory consumption of the entire memcg, across all nodes. >>> Migration does not assist memcg reclaim because it just moves >>> page contents between nodes rather than actually reducing memory >>> consumption. > ... >> Should this be folded into Patch 4 when can_demote() is >> introduced? > > I guess it could be. But, it's logically separate since it has its > own justification which is rather discrete. > > I think it's best to keep it separate. Sure. I am OK with it. — Best Regards, Yan, Zi
On Wed, Jul 21, 2021 at 2:58 PM Dave Hansen <dave.hansen@intel.com> wrote: > > On 7/21/21 2:38 PM, Zi Yan wrote: > > On 21 Jul 2021, at 2:39, Huang Ying wrote: > >> From: Dave Hansen <dave.hansen@linux.intel.com> > >> > >> Global reclaim aims to reduce the amount of memory used on a > >> given node or set of nodes. Migrating pages to another node > >> serves this purpose. > >> > >> memcg reclaim is different. Its goal is to reduce the total > >> memory consumption of the entire memcg, across all nodes. > >> Migration does not assist memcg reclaim because it just moves > >> page contents between nodes rather than actually reducing memory > >> consumption. > ... > > Should this be folded into Patch 4 when can_demote() is > > introduced? > > I guess it could be. But, it's logically separate since it has its > own justification which is rather discrete. > > I think it's best to keep it separate. Yes, I agree.
diff --git a/mm/vmscan.c b/mm/vmscan.c index 67a320c6571d..60179903ed9e 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -521,8 +521,13 @@ static long add_nr_deferred(long nr, struct shrinker *shrinker, static bool can_demote(int nid, struct scan_control *sc) { - if (sc && sc->no_demotion) - return false; + if (sc) { + if (sc->no_demotion) + return false; + /* It is pointless to do demotion in memcg reclaim */ + if (cgroup_reclaim(sc)) + return false; + } if (next_demotion_node(nid) == NUMA_NO_NODE) return false;