From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 55687C4167B for ; Mon, 27 Nov 2023 22:34:47 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A84206B0261; Mon, 27 Nov 2023 17:34:46 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id A33F86B026C; Mon, 27 Nov 2023 17:34:46 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 94ABB6B0273; Mon, 27 Nov 2023 17:34:46 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 869726B0261 for ; Mon, 27 Nov 2023 17:34:46 -0500 (EST) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id DD080C0124 for ; Mon, 27 Nov 2023 22:34:45 +0000 (UTC) X-FDA: 81505190130.27.E1B8BC8 Received: from mail-il1-f169.google.com (mail-il1-f169.google.com [209.85.166.169]) by imf12.hostedemail.com (Postfix) with ESMTP id 1F645401A2 for ; Mon, 27 Nov 2023 22:34:43 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=aG5ZINVP; spf=pass (imf12.hostedemail.com: domain of nphamcs@gmail.com designates 209.85.166.169 as permitted sender) smtp.mailfrom=nphamcs@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1701124484; a=rsa-sha256; cv=none; b=iWjce4Sm3zBSGH5IrFfcOmIaAL3/Uhn+IjLeYsX1xwIbURbi51rKSGWvZUAW12EswpwEVK 8NX5LZnzoUG4RE25gJn49aV7OAHPs/AB6ZfUYcmae2K6lZa49ZD4NlB5V8Xm2OGBZWp+rX H+H6xgdXjR2dP7xvhbNYxyAxAyVuKEw= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=aG5ZINVP; spf=pass (imf12.hostedemail.com: domain of nphamcs@gmail.com designates 209.85.166.169 as permitted sender) smtp.mailfrom=nphamcs@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1701124484; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=1sR2GQKO7WIcjcfwKsrJ+kK8ez+pv+/L5wHkm6C51ig=; b=uqaqJwll39CHhAE1YnpHh0/LxBKpTfwGEwGFvUMRtb0JrDixmh7UWmxeddkGK1e/gH7UV8 0W9l4dZSuI4ApIwsltxMFQE7jV1LWqaEUHeLybKGFYXP2H2cYIKLkWfUTS15ZvfNJBZ9ct rc/ACEiX7BL6mIXbKkSXOCj5jZuFBiA= Received: by mail-il1-f169.google.com with SMTP id e9e14a558f8ab-35cb62e3905so7648125ab.3 for ; Mon, 27 Nov 2023 14:34:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1701124483; x=1701729283; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=1sR2GQKO7WIcjcfwKsrJ+kK8ez+pv+/L5wHkm6C51ig=; b=aG5ZINVP0CQfIAUDNvu0QYFd7eOkkSGbpMKWd299R09maUEhWoPySyp6GAvhw+kvnw ERpCR2NHGA4ZAEt4oK4Gp6UChCuUpiN60tw1TNwbAgg7vXAssBsHZMNWJy9QVz2GiqxV nWmohcMUWUwm/q4Qq6UC1f//h340cacSEAqcECqNbpQpbKyIGVpldtPDLc4kfcTzgxdi D/eUO/uzdrsqcPKjrAApFd7bu4DjgwTIUW6p56n2RXDynJy5ELC6YvKdQY7JyODcqMp7 bMzGYwt3iAEHnDEIZJvbCWcSIhogftn7gZoUtJYAoD17CkWHdmwro4XpofeuZO07/niN VPKQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701124483; x=1701729283; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=1sR2GQKO7WIcjcfwKsrJ+kK8ez+pv+/L5wHkm6C51ig=; b=GycNb6JKmlEdeUk56cg8RdYEvr5ecXHWJ5cwtnG8K9+kCelsx6hhkGcAjShchmeU/Z M3wadxd/9rN8jLK/XK/lB3tHLSxXB9ptcCHciDsGCN4f+7DLGOs99JXpu+dDlc75AJc7 HGjlp63Iw6JPK9TeUhg5OB1OI7DubkLju1WxKRqyskTvu1qBBzbcSLGUTAQxncwDvZjx +AQgnq/vWKlFGiKG+8Tfu7a2YsKxg8ptkPJT5mMCjAIXdHoY3tOAB61x0bK2TFx3/dhG AiKos1gFJUbbEjgF2MW5dT72/XYatrzQPdEoWqndaPubkmx9Dtk9EPxHVQ5ludr2WIgs BXeQ== X-Gm-Message-State: AOJu0YxeP0df322o7YBPqfDmFmNcp+OFaVQlGRsSSHMmz29ZTUH9gLAa +jzzvalIGhX6tUrdSORsMdBCTxqiM7OFgSiNrEs= X-Google-Smtp-Source: AGHT+IHZaiS3nynE7U3pzq8Y3JAe1FrACVX2WxXS1uB6jc3zbZm44/mpWVEj353G0gGg2tNcCHwcjdBzk6AZg/8IwnA= X-Received: by 2002:a05:6e02:dd3:b0:35c:9dca:dfb1 with SMTP id l19-20020a056e020dd300b0035c9dcadfb1mr8631738ilj.28.1701124483084; Mon, 27 Nov 2023 14:34:43 -0800 (PST) MIME-Version: 1.0 References: <20231127193703.1980089-1-nphamcs@gmail.com> <20231127193703.1980089-3-nphamcs@gmail.com> <20231127134259.67b69ab47f4f88c9751e5222@linux-foundation.org> In-Reply-To: <20231127134259.67b69ab47f4f88c9751e5222@linux-foundation.org> From: Nhat Pham Date: Mon, 27 Nov 2023 14:34:31 -0800 Message-ID: Subject: Re: [PATCH v6 2/6] memcontrol: allows mem_cgroup_iter() to check for onlineness To: Andrew Morton Cc: hannes@cmpxchg.org, cerasuolodomenico@gmail.com, yosryahmed@google.com, sjenning@redhat.com, ddstreet@ieee.org, vitaly.wool@konsulko.com, mhocko@kernel.org, roman.gushchin@linux.dev, shakeelb@google.com, muchun.song@linux.dev, chrisl@kernel.org, linux-mm@kvack.org, kernel-team@meta.com, linux-kernel@vger.kernel.org, cgroups@vger.kernel.org, linux-doc@vger.kernel.org, linux-kselftest@vger.kernel.org, shuah@kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 1F645401A2 X-Stat-Signature: ti683s4fmghxa91o7zcx8rhpbh5td86z X-Rspam-User: X-HE-Tag: 1701124483-587570 X-HE-Meta: U2FsdGVkX197bEu+urJaRMjoFLiXFxfzW8IGHbcIcgtR03yqLPdBRHeJplJg9M7wgz8e+dUAVcqsc/CwRGnoOJkJo8m1eTnx6CJLXhC4ppnoHiW3B5vubKzUe+4/+pXxlVHqH7i+SBu87MU8+J9y/Z9YdrNZ9SAGq1NDjY/tfpevdnqDNVedsQUs99qSZXBm14gJVAnWKe9/gSedSDr5hEOWvDL+EcP5pmG6ZOg6M1KStJvBDh2sVyX3pBScV75fAC4HPovWuWxNgLFH5wfOWZLA30LEagG4q9FApJRfom46tltv3PX5oG73pkW3++w75bB7r8zFmu3VvaZzh94RD7M0X7wsklelRAdpMRVOI7N7UgFGNGQKcOQfyt1pCmR9EQ7fko5t1owLQqK9a4doI4jUQYbBSptW3SoxKkDBsGITanqO7k3sq5VOrNnYqOw2otJS2R4arLfW0tySQgGLxbmaZrKX/82M6KaVQexVxe6kV4VTkcRXiKmUkPJs4OHiAa4h2JUlPzR0hoFZfkHrlhXNydCH1p/HS46iJ8V/WzDbKvCN2u45z+xdQf6zsDv+w3iHhkivn6QYlHGSVchmN0BAFZkRqAHyjhMKJPoFDK8fH2Q5VhfyH8IDdaB4fXuYf6TTScuf5EzgCopIhXkghPe3RAB2mnnUBEpBMQxRZaLhG3WZtXSYZLGvni2FyZhBkraUAPeREwlqDwK7eu/jlDn2iIJlty2bnCMxLsd3zBjddC/PXyWsR+wQVnXSVzv37T8u0ATQpodc66JNj9hQEnr9B4bIMewY/ZqV3GBsmlgyn6kxA3EsJGjlnYDz4+fJbfVOVyrFqez5a7+gyBoVOYMuHx09VnhTPI7eEhY8MY9NFHzWau6dNGYozOBXK9Y+mYzkF4FdNXy5UPa7xtHku7hbT7DF7/UoZma1r9Fn21YZ8AIJQ9HKrdcfZdVeXI9d/5+FUxDhc5jLe4iRXs+ m/05zq65 VF9OcZqqondy/yzmxAOVMHSEz7DiFR3xFc0zco+Bdvq5nBqgVHoKts8cmQbL/59ouz3ZfF4NWx+PxTn8IgZ13bP54EK5xzthIPqr3T3IAhyEh4ktJT9lJhRQFB06ykNZ0WFDU76c42tY90eYqOsPoZYryTfPJb+uWFsUNUNcBJC8e7R454YgVadh4OfxptO3m4nLl+G2Gr8pNUHOjV8QsrjP6mRP8mXF7TA35wMsfGEZXglkLL31x7k5/Nh1RMvS3VMUVo7xcd4vdsjBDO1MLhcXNCqy+61bGZStN6wVZ7bq+5owHcs/ujc6S5aJtO1sQVztZXuuJ09dSupuQYzjY23m9ElD1VADtOaMQGQOUAgZtBoti3CGPIb15DOGmErK6eHTId6hQRDmffTA59RNj4hs5wgLHjYRaw3kqlxhazjzFEaSSqn8SfHwSFQzvJVET6Lfh9vZN05FRrv8FpCFih0eOResvlSVFcQCHnDOco6Awr/k= X-Bogosity: Ham, tests=bogofilter, spamicity=0.009350, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Mon, Nov 27, 2023 at 1:43=E2=80=AFPM Andrew Morton wrote: > > On Mon, 27 Nov 2023 11:36:59 -0800 Nhat Pham wrote: > > > The new zswap writeback scheme requires an online-only memcg hierarchy > > traversal. Add a new parameter to mem_cgroup_iter() to check for > > onlineness before returning. > > I get a few build errors, perhaps because of patch timing issues... Ah I thought I got all of them. Must have somehow missed it. > > mm/shrinker_debug.c: In function 'shrinker_debugfs_count_show': > mm/shrinker_debug.c:64:17: error: too few arguments to function 'mem_cgro= up_iter' > 64 | memcg =3D mem_cgroup_iter(NULL, NULL, NULL); > | ^~~~~~~~~~~~~~~ > In file included from mm/shrinker_debug.c:7: > ./include/linux/memcontrol.h:833:20: note: declared here > 833 | struct mem_cgroup *mem_cgroup_iter(struct mem_cgroup *, > | ^~~~~~~~~~~~~~~ > mm/shrinker_debug.c:89:27: error: too few arguments to function 'mem_cgro= up_iter' > 89 | } while ((memcg =3D mem_cgroup_iter(NULL, memcg, NULL)) != =3D NULL); > | ^~~~~~~~~~~~~~~ > ./include/linux/memcontrol.h:833:20: note: declared here > 833 | struct mem_cgroup *mem_cgroup_iter(struct mem_cgroup *, > | ^~~~~~~~~~~~~~~ > mm/damon/sysfs-schemes.c: In function 'damon_sysfs_memcg_path_to_id': > mm/damon/sysfs-schemes.c:1594:22: error: too few arguments to function 'm= em_cgroup_iter' > 1594 | for (memcg =3D mem_cgroup_iter(NULL, NULL, NULL); memcg; > | ^~~~~~~~~~~~~~~ > In file included from ./include/linux/damon.h:11, > from mm/damon/sysfs-common.h:8, > from mm/damon/sysfs-schemes.c:10: > ./include/linux/memcontrol.h:833:20: note: declared here > 833 | struct mem_cgroup *mem_cgroup_iter(struct mem_cgroup *, > | ^~~~~~~~~~~~~~~ > mm/damon/sysfs-schemes.c:1595:33: error: too few arguments to function 'm= em_cgroup_iter' > 1595 | memcg =3D mem_cgroup_iter(NULL, memcg, NU= LL)) { > | ^~~~~~~~~~~~~~~ > ./include/linux/memcontrol.h:833:20: note: declared here > 833 | struct mem_cgroup *mem_cgroup_iter(struct mem_cgroup *, > | ^~~~~~~~~~~~~~~ > > > --- a/include/linux/memcontrol.h > > +++ b/include/linux/memcontrol.h > > @@ -832,7 +832,7 @@ static inline void mem_cgroup_put(struct mem_cgroup= *memcg) > > > > struct mem_cgroup *mem_cgroup_iter(struct mem_cgroup *, > > struct mem_cgroup *, > > - struct mem_cgroup_reclaim_cookie *); > > + struct mem_cgroup_reclaim_cookie *, bo= ol online); > > How many callsites do we expect to utilize the new `online' argument? > Few, I suspect. > > How about we fix the above and simplify the patch by adding a new > mem_cgroup_iter_online() and make mem_cgroup_iter() a one-line wrapper > which calls that and adds the online=3Dfalse argument? But yes, this is a much smarter idea. Should have thought about it initiall= y :) > > I also saw this, didn't investigate. > > drivers/android/binder_alloc.c: In function 'binder_update_page_range': > drivers/android/binder_alloc.c:237:34: error: too few arguments to functi= on 'list_lru_del' > 237 | on_lru =3D list_lru_del(&binder_alloc_lru= , &page->lru); Oh yeah I missed this too - it's due to the API change introduced to the previous bug. The old "list_lru_del" is now "list_lru_del_obj". Let me double check everything again and send out the fixes. My apologies. >