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 0CD80C77B61 for ; Tue, 25 Apr 2023 06:38:24 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 463C06B0071; Tue, 25 Apr 2023 02:38:24 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 413776B0074; Tue, 25 Apr 2023 02:38:24 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 302726B0075; Tue, 25 Apr 2023 02:38:24 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 208E56B0071 for ; Tue, 25 Apr 2023 02:38:24 -0400 (EDT) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id C65E4C01CF for ; Tue, 25 Apr 2023 06:38:23 +0000 (UTC) X-FDA: 80718959286.17.00DA2BD Received: from out-56.mta1.migadu.com (out-56.mta1.migadu.com [95.215.58.56]) by imf14.hostedemail.com (Postfix) with ESMTP id E02D7100008 for ; Tue, 25 Apr 2023 06:38:21 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=Waxpik0M; spf=pass (imf14.hostedemail.com: domain of yajun.deng@linux.dev designates 95.215.58.56 as permitted sender) smtp.mailfrom=yajun.deng@linux.dev; dmarc=pass (policy=none) header.from=linux.dev ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1682404702; 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=G0Sw1HF+tb0ME16TauipdBUqsBMcXzjj7/tJbiHX/1s=; b=5HRiBvwnI+jhwbI7PR2+YWeIHKaVHYpExDuqPx/YBMP5H60aXP+A/hv+VBvuMtX/6lfeOY 9ZrXBbk1x4HmExFL5Io+03sN+75u9bER3EEGUK+RhRF/qBvLRk1FxRiLt8/Xgzre3NKL4m XBAys1Sjw1lG7GcFWqLdJVsyNr95CBo= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=Waxpik0M; spf=pass (imf14.hostedemail.com: domain of yajun.deng@linux.dev designates 95.215.58.56 as permitted sender) smtp.mailfrom=yajun.deng@linux.dev; dmarc=pass (policy=none) header.from=linux.dev ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1682404702; a=rsa-sha256; cv=none; b=AUtak4d4tMhP6Y/T0Afm0lRbLPgzgVr7okbx8v8uteSblnITLh4RQwKDNtazezIC80RYH+ JGQwba2pPof11FzYhlDQeD6aAU3o7f5M9ni2SVm1aP+JEb1B5lY/5phSXNlZMZ88A3UJBZ /kZRSg28gWDFrsmLE0ry6U/aieTEonA= MIME-Version: 1.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1682404699; h=from:from: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; bh=G0Sw1HF+tb0ME16TauipdBUqsBMcXzjj7/tJbiHX/1s=; b=Waxpik0MqJXy4sXV9FTSarf+6yE6iLfbA5xW066NmLPSnwiydD2Fo6Bmj1v0lb/pBAGcgI rLzA9EJRZD2KJqeI6HeSp6aQgasrBIU7bx7Tm+8Qhc11S2W7IazEP5JY+nBrydwV4ic13k WhGhE8O4Ia/nEpLKkJps7kSxKYwr7Uo= Date: Tue, 25 Apr 2023 06:38:18 +0000 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: "Yajun Deng" Message-ID: Subject: Re: [PATCH] mmzone: Introduce for_each_populated_zone_pgdat() To: "Huang, Ying" , "Andrew Morton" Cc: "Matthew Wilcox" , 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 In-Reply-To: <875y9kfr0o.fsf@yhuang6-desk2.ccr.corp.intel.com> References: <875y9kfr0o.fsf@yhuang6-desk2.ccr.corp.intel.com> <20230424030756.1795926-1-yajun.deng@linux.dev> <20230424145823.b8e8435dd3242614371be6d5@linux-foundation.org> X-Migadu-Flow: FLOW_OUT X-Rspamd-Queue-Id: E02D7100008 X-Stat-Signature: guw63fkt3mgyt7njepycaifkr6369bxw X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1682404701-679654 X-HE-Meta: U2FsdGVkX1/nZz97AmSlrzjXZZJjs9glIxu6iLU1tNK56HBTN/DTedCT47DIiTODPHqDLZpeWlcsqyBEjWn2jZzanih0dkdL1QFN91RmCyMEPGWEPm04Ro1sNSdYVhrRXifa/y5RrilWPl3ehg/tFOVJSUDWlFKofegmzPfq08YJYfxorDdriO85BjQUZsodJO/nfAa8eZHAsBQkjIXCEXBflStM+7E5k2Hhksm01y1TsAWsjvRyXyKZ8qDGKvSn1jgr7eOVjgZomYNsbcPyCJ/qZYWNCcZcnBYasECUIUYwBZF3v8n/NTsr6rCRJ9aLOYKQ+yyy35/Sg0tQNtP+Ull9r3owN1S6WEHD8tKL0pfR2v0lSY46Jucq7vn6qTCqumN8D+f2WeRnlpIrFj4S046oCB/oJBBWdnciju56Sdu4tuChg2MZz++Ffl6IcyQ6XvFTo+UPILpo5ygx9tH+H1Zh2W9rr2BzWKD2MR/Lcm/kPapP0ptEDRgyDKrEI5wpmKxJOyT97T3CzhBcOJKQ/KltjHH727mmmUEC5R/Frh33Kt9nxOqoU7sWzIFgICXNciTHngonBhGMWCOWck4X9lhnuI69K04mStwx1cEWkpzjQcBRMHr2sTZE3VCV4ExFKRmAc3v3LxgoZGglNF2dAvahsHDIkQ3xa7UPmbCqKehSYs/UroR/uVkitxYGge9nstebI9tR0Hj23IDYkIModMcx0I5gxFGfAXACIoGJMXgmnWEkvXUnx810v//PCG8tqfGrMymON/uQi1UVJ5KqrqQQVF+EOb29q6TD8VRUD6FNPHieXsL6YKRWJh/AMjxULoxrfcEEkYzKL7P0e04TuYYGbqCSGqUd0eNvkVqJSk/Z4V4+0BvFnJvq3UeiVje2k7WwnxbxYedWihT/JZ9paPVAj8QXupQrsuVYXlgz0LPX5bsXUA3+gUQGMP0FiygMsiLQgPgeKL3TfIkiA5q lS/kAviG AEr7COeDZZn23cIRO1ADBQwMV1N8lwEUuza94mqJEVZpsIVtSfLDhavN0qSBuRNJ4my4A92DiWXLS9CfHHGvzETlw8MDR109Rn2OjAJkwYsLIAmd4+DLo0A2Jxg38kn4xNDRS7B94e96TisiT7Zd3sh+Thr74N8T84HTJzB5/+LNBoWZt89b3KYN9tUDugJv3iTjaxtCge8KVVoc3MlDszYoXYOMCQGq+eiu4DB8cKRq8tIbaf/6z0PnymvWW8esPPYf6mpoIExECJpfbntyvMs1MEQ== 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: April 25, 2023 1:51 PM, "Huang, Ying" wrote:=0A=0A= > Andrew Morton writes:=0A> =0A>> On Mon, 24 = Apr 2023 04:50:37 +0100 Matthew Wilcox wrote:=0A>> = =0A>>> On Mon, Apr 24, 2023 at 11:07:56AM +0800, Yajun Deng wrote:=0A>>>>= Instead of define an index and determining if the zone has memory,=0A>>>= > introduce for_each_populated_zone_pgdat() helper that can be used=0A>>>= > to iterate over each populated zone in pgdat, and convert the most=0A>>= >> obvious users to it.=0A>>> =0A>>> I don't think the complexity of the = helper justifies the simplification=0A>>> of the users.=0A>> =0A>> Are yo= u sure?=0A>> =0A>>>> +++ b/include/linux/mmzone.h=0A>>>> @@ -1580,6 +1580= ,14 @@ extern struct zone *next_zone(struct zone *zone);=0A>>>> ; /* do n= othing */ \=0A>>>> else=0A>>>> =0A>>>> +#define for_each_populated_zone_p= gdat(zone, pgdat, max) \=0A>>>> + for (zone =3D pgdat->node_zones; \=0A>>= >> + zone < pgdat->node_zones + max; \=0A>>>> + zone++) \=0A>>>> + if (!p= opulated_zone(zone)) \=0A>>>> + ; /* do nothing */ \=0A>>>> + else=0A>>>>= +=0A>> =0A>> But each of the call sites is doing this, so at least the c= omplexity is=0A>> now seen in only one place.=0A>> =0A>> btw, do we need = to do the test that way? Why won't this work?=0A>> =0A>> #define for_each= _populated_zone_pgdat(zone, pgdat, max) \=0A>> for (zone =3D pgdat->node_= zones; \=0A>> zone < pgdat->node_zones + max; \=0A>> zone++) \=0A>> if (p= opulated_zone(zone))=0A>> =0A>> I suspect it was done the original way in= order to save a tabstop,=0A>> which is no longer needed.=0A> =0A> This m= ay cause unexpected effect when used with "if" statement. For=0A> example= ,=0A> =0A> if (something)=0A> for_each_populated_zone_pgdat(zone, pgdat, = max)=0A> total +=3D zone->present_pages;=0A> else=0A> pr_info("something = is false!\n");=0A> =0A=0AThanks Huang, Ying for the example.=0A=0AYes, th= is macros with multiple statements but doesn't have a do - while loop,=0A= It needs if and else together.=0A=0A> Best Regards,=0A> Huang, Ying