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 EEA95C6FD18 for ; Tue, 25 Apr 2023 05:53:10 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 427166B0071; Tue, 25 Apr 2023 01:53:10 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 3AF726B0074; Tue, 25 Apr 2023 01:53:10 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 251D26B0075; Tue, 25 Apr 2023 01:53:10 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 17D426B0071 for ; Tue, 25 Apr 2023 01:53:10 -0400 (EDT) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id CE3871C6260 for ; Tue, 25 Apr 2023 05:53:09 +0000 (UTC) X-FDA: 80718845298.14.DC4F486 Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by imf22.hostedemail.com (Postfix) with ESMTP id 98C40C0007 for ; Tue, 25 Apr 2023 05:53:06 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=RZ2XNmVG; spf=pass (imf22.hostedemail.com: domain of ying.huang@intel.com designates 134.134.136.24 as permitted sender) smtp.mailfrom=ying.huang@intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1682401987; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=JrzoZRfdwWGPICSEWd6khk7seeNwc6gm8l91a1rzGkU=; b=Ji3nZYfGgwCo2pcQUzc9RZF3BtqaNsm6xgFRvQO0JAAhovsbyvfV/O92QjQ2nJOMgBtBSV aUbgyvhyIs6/qvRA/WLk7oA3yyVM3yH52OfVRS4ps4ETjm0wo7/79JB4uBmhVWtveVz3wu QimyI+IKBbqeq7LNubX8UxAVsiu9dQc= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=RZ2XNmVG; spf=pass (imf22.hostedemail.com: domain of ying.huang@intel.com designates 134.134.136.24 as permitted sender) smtp.mailfrom=ying.huang@intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1682401987; a=rsa-sha256; cv=none; b=eVZ40E0s/Yue/tQYbWGUUcfa12G49xyLFLq/1OYda/PuKRGGBTubUfqtXsT3lDkcXnndVY v+q8R9GQVnoleB4zmA3kDB2Ba+rMyjLeBIy/SM8DlQE5NtMx46iZ2mrGBBQdikWzHrsaks 0GuxeZgEh1Pc+s7+o8iEvirq3BnA/S8= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1682401986; x=1713937986; h=from:to:cc:subject:references:date:in-reply-to: message-id:mime-version; bh=yEFEZaCGdPu5BAzE+GbFl7dn/Sse2du6ZjLBsJ1OM2s=; b=RZ2XNmVGjLaNqQNUadXoF8Z3YHPUwBw1zOGjNosB9otWlUF8hyq6NYZq mrzuZA0k1Pe/zzmgUAU0rBQfypwqyj1IqgmWGSOiaIjYei8YaLLkdiM7C cSXgEm/8hZwJ8ReenKRARHrOyx77pjIjtgg1kCbV9wX4rm7lhqmz1dIfg ModYXj05gA1UZuR81tNWP6qdZ9XI6ozNkfXEu/5veHzBBQPrcFY/NUJcP NrcH1GDxvfqAw6hsuOBUfigdoUceH6c6gPSLHm7lROmQHTnO4F5dXh9kn 0wqGG3QRI5W2Qd7i+AGG2S4j0P1NoDefLJBTOyxkn3V4nj3mozSOspG35 A==; X-IronPort-AV: E=McAfee;i="6600,9927,10690"; a="348579488" X-IronPort-AV: E=Sophos;i="5.99,224,1677571200"; d="scan'208";a="348579488" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Apr 2023 22:53:04 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10690"; a="1023003065" X-IronPort-AV: E=Sophos;i="5.99,224,1677571200"; d="scan'208";a="1023003065" Received: from yhuang6-desk2.sh.intel.com (HELO yhuang6-desk2.ccr.corp.intel.com) ([10.238.208.55]) by fmsmga005-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Apr 2023 22:53:02 -0700 From: "Huang, Ying" To: Andrew Morton Cc: Matthew Wilcox , Yajun Deng , david@redhat.com, osalvador@suse.de, gregkh@linuxfoundation.org, rafael@kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org Subject: Re: [PATCH] mmzone: Introduce for_each_populated_zone_pgdat() References: <20230424030756.1795926-1-yajun.deng@linux.dev> <20230424145823.b8e8435dd3242614371be6d5@linux-foundation.org> Date: Tue, 25 Apr 2023 13:51:51 +0800 In-Reply-To: <20230424145823.b8e8435dd3242614371be6d5@linux-foundation.org> (Andrew Morton's message of "Mon, 24 Apr 2023 14:58:23 -0700") Message-ID: <875y9kfr0o.fsf@yhuang6-desk2.ccr.corp.intel.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=ascii X-Rspamd-Queue-Id: 98C40C0007 X-Stat-Signature: xkrpubrfxwifn9wbnrs7qucge3xbfxfb X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1682401986-924884 X-HE-Meta: U2FsdGVkX19P0a0+pO5I9+QAyu6kckgufjYcdUahDgaFEE5Y6s1M2PYvZi1ou9uk3p3j4HOhmDEfAnNi605BFZsHD6fCT0LkQH/gQLkX7SN1Yvc0Ay487yaJhv2LiJyr4mWaIMOImaqhjG8nSoYF5VLMPgvxM4vMMv+fZjCyeklo8PasswG02sWreFVBRTogJk/B8ihoUUb7DTOeOgSgvySpkTGzIxOdGpiYIzJW9BjiZqaF24PUFbyEYimdvIYTOXWKZeZNBLKud4a78QwK5i1eRnls9+PN7EiGMWqi+oCtfSII0o3Pg1olanaKXyLxkouVtvmPvKuUlSlKBk6WD8jEDPtDlgrMK4PvWVJo1fX3MoXVpLboxF9BtxdZ4mDrwMc25fRS8TYtKdjINwm3khn4Z+TMdsdFpyHPu9WAlZGW8eTFfPXNHi6AOurm/jTbXkBqJyWe3d9yJ99byGhIH5vvkSJGaxb5ir172tZLuRaKLKCkM5743Hx+72RBSydpI3ExaDc9gbRwBSkc2ufsg3AcV0PeGdWDIH+n0MRufVHVXGP/emnA87EoeOVbfZ5xP8TT4T0KjSNLiisz/IwUZj/oOTE6YyEDhOOvOZ+QuxMVmp/Oaz0bOXeEI0WEQvLXbArm/Xqc2vfmLye2yH06DWeYICMDBdqvpGPAAYkkDl5qs1r0HTfC/OIyuJTfHbBNYEsarlMA4Sb3dCsgVvRGCInKE6gChKun8UFtGTZSmdmZRbRwnxjZuKoBM6uggQ+vBc84zHyHChik4dcGspkfUnVvlHrjMvN0Qha3G/hY5dALx8Wuhfm7LtT3YUjtrWon7ZrN41xq7H/3XHsqoyVWFPC7CU4S3Ehq5/ILG/Y3ltJ7rlItiJs/7vV5LrJrLZ61iwhtWj46Gy5fYHH9+Kz2e88njky1fabv6DoPnPrCWTzY2vzldiMmhTglIiZbPC43PnA/+KQEBJh1CAXTI66 PlGboaUz DUs1jnKO/Gd4bZBFZjiwVoDX2H/69BqyX45zAsdUWP/mdlrqf7ZUDwrVDSzGCQ9QFys+k7IIhqfOxCJEgqlFunJDbcfUM0Nk/JogF/2/BlXma6Bd7W79GsxmvYFMn34A3DOHvAxrp14mDLO4eAxUKrEVxNTC9mVZf/pl9tOQ3FhrA2Gfy2EZSpPyc8azrAvlnI1KRYLaK7oFhYoxSlSK2s2XUTV2hLLAfr/Vs/qu9kyhN6MpJDn7zgs9YZ9jmhsQfwtkWJtOaYxZN0Tj+0u6W11jBFk1lfwG0N8MUOZUQ0j3TVDjelcSSOdjMG0P0fo2Mw7tN X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: Andrew Morton writes: > On Mon, 24 Apr 2023 04:50:37 +0100 Matthew Wilcox wrote: > >> On Mon, Apr 24, 2023 at 11:07:56AM +0800, Yajun Deng wrote: >> > Instead of define an index and determining if the zone has memory, >> > introduce for_each_populated_zone_pgdat() helper that can be used >> > to iterate over each populated zone in pgdat, and convert the most >> > obvious users to it. >> >> I don't think the complexity of the helper justifies the simplification >> of the users. > > Are you sure? > >> > +++ b/include/linux/mmzone.h >> > @@ -1580,6 +1580,14 @@ extern struct zone *next_zone(struct zone *zone); >> > ; /* do nothing */ \ >> > else >> > >> > +#define for_each_populated_zone_pgdat(zone, pgdat, max) \ >> > + for (zone = pgdat->node_zones; \ >> > + zone < pgdat->node_zones + max; \ >> > + zone++) \ >> > + if (!populated_zone(zone)) \ >> > + ; /* do nothing */ \ >> > + else >> > + > > But each of the call sites is doing this, so at least the complexity is > now seen in only one place. > > btw, do we need to do the test that way? Why won't this work? > > #define for_each_populated_zone_pgdat(zone, pgdat, max) \ > for (zone = pgdat->node_zones; \ > zone < pgdat->node_zones + max; \ > zone++) \ > if (populated_zone(zone)) > > I suspect it was done the original way in order to save a tabstop, > which is no longer needed. This may cause unexpected effect when used with "if" statement. For example, if (something) for_each_populated_zone_pgdat(zone, pgdat, max) total += zone->present_pages; else pr_info("something is false!\n"); Best Regards, Huang, Ying