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 7D42DD13590 for ; Mon, 28 Oct 2024 02:53:01 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 027C16B0098; Sun, 27 Oct 2024 22:53:01 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id F1AEE6B0099; Sun, 27 Oct 2024 22:53:00 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DB9156B009B; Sun, 27 Oct 2024 22:53:00 -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 BE4936B0098 for ; Sun, 27 Oct 2024 22:53:00 -0400 (EDT) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id BCFBE1406C9 for ; Mon, 28 Oct 2024 02:52:36 +0000 (UTC) X-FDA: 82721487786.07.4D3D839 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.11]) by imf05.hostedemail.com (Postfix) with ESMTP id AD2AC100004 for ; Mon, 28 Oct 2024 02:52:14 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=AAZq18pB; dmarc=pass (policy=none) header.from=intel.com; spf=pass (imf05.hostedemail.com: domain of ying.huang@intel.com designates 192.198.163.11 as permitted sender) smtp.mailfrom=ying.huang@intel.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1730083924; a=rsa-sha256; cv=none; b=Lm+Cii0H1MuV2KZpie5lWoCOQSUfjXLrc1++h/AhV9bxRs1x1d5mF+JaDZc7qk+c9TOSIX /ihBA0APQKeVBRWyc74sNkO+t5LQhfuYKhI4wh4y6YWViK4Glim/c+pukwLJPOEz2E2Tyg e3Cnef28VoUBQFTXXcdokHQZe6ENbHU= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=AAZq18pB; dmarc=pass (policy=none) header.from=intel.com; spf=pass (imf05.hostedemail.com: domain of ying.huang@intel.com designates 192.198.163.11 as permitted sender) smtp.mailfrom=ying.huang@intel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1730083924; 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=6Y4EEQZQxVkvKXn7Na/A07yOzQM+F5WHEhCZwV6lPEQ=; b=7RiCbln0Z4tK35RXrz2aJMfgfmaYykjXJxjjNFaECmDVX5hk7AtxzIlNTlk16xKusk3FoX 6aT3yCx0iVwQrmCRSplZbU0yqhCcbnJaTM9BHmLYyJ1fOm7zXPp9PsOPuoRLro964oilNb VtYRg45zTDRKFF9k1qBzP5Lh7RxgF3E= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1730083978; x=1761619978; h=from:to:cc:subject:in-reply-to:references:date: message-id:mime-version; bh=gbA2PCwdnxgqssCr7s6U4TSBzXN4+/DsTBMqtrHDBhA=; b=AAZq18pBKzPvgtezI938/Iam1ZlTsiHljHclRx/vDe8bP2eFhUxG9OqF c2gXyeOHb9H0FMkE/2ULbpJMu3Ye1xiV0eAKsC59XQhy7pz0qaizfJrFg iVtr2jIz0sBMItYhNJrNVwJM0N1INrxmbG49+j3M/chiieCDTQFXdNB/o 7vNTbK1dxd8gtToJcYx81txTeYSxtyVW7brBHOZNSlEbvwJ+to5Gc7mFm M6mkGliWu2nKnFjiDfztFVBRG7E/8ET7arSHN85elvL1BrZa9DiQzUwZO UiP9SIjSXZ26OZK8WPhW9t39qbmmyt0zlmmjyjV40BLBz1FpMh5J4ivR4 g==; X-CSE-ConnectionGUID: /yuhmvWcQG2GbVSE7M970w== X-CSE-MsgGUID: R4XEnxJlTfmb11l1hDmLhQ== X-IronPort-AV: E=McAfee;i="6700,10204,11238"; a="40249544" X-IronPort-AV: E=Sophos;i="6.11,238,1725346800"; d="scan'208";a="40249544" Received: from orviesa009.jf.intel.com ([10.64.159.149]) by fmvoesa105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 Oct 2024 19:52:57 -0700 X-CSE-ConnectionGUID: QfcbvVwjR+ix2rgzDazo2g== X-CSE-MsgGUID: Xq4F7E1QRX2iXcCKUazCxw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.11,238,1725346800"; d="scan'208";a="81421254" Received: from yhuang6-desk2.sh.intel.com (HELO yhuang6-desk2.ccr.corp.intel.com) ([10.238.208.55]) by orviesa009-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 Oct 2024 19:52:53 -0700 From: "Huang, Ying" To: Dan Williams Cc: Andy Shevchenko , David Hildenbrand , Andrew Morton , linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-cxl@vger.kernel.org, Davidlohr Bueso , Jonathan Cameron , Alistair Popple , Bjorn Helgaas , Baoquan He , Dave Jiang , Alison Schofield Subject: Re: [RFC] resource: Avoid unnecessary resource tree walking in __region_intersects() In-Reply-To: <671bb5d165_10e592941e@dwillia2-xfh.jf.intel.com.notmuch> (Dan Williams's message of "Fri, 25 Oct 2024 08:14:25 -0700") References: <20241010065558.1347018-1-ying.huang@intel.com> <87set3a1nm.fsf@yhuang6-desk2.ccr.corp.intel.com> <671965a8b37a2_1bbc629489@dwillia2-xfh.jf.intel.com.notmuch> <87wmhx3cpc.fsf@yhuang6-desk2.ccr.corp.intel.com> <671ac2d2b7bea_10e59294f2@dwillia2-xfh.jf.intel.com.notmuch> <671bb5d165_10e592941e@dwillia2-xfh.jf.intel.com.notmuch> Date: Mon, 28 Oct 2024 10:49:19 +0800 Message-ID: <87plnl0wnk.fsf@yhuang6-desk2.ccr.corp.intel.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=ascii X-Rspam-User: X-Rspamd-Queue-Id: AD2AC100004 X-Rspamd-Server: rspam01 X-Stat-Signature: 3g74w7qr8uejn6xhqr9914cxfbb5biq9 X-HE-Tag: 1730083934-452767 X-HE-Meta: U2FsdGVkX1/WgdN/d1zGAK580YTAW7eykGWKPAl99h/DD3RNk2DfAj5ETnPRM3kYCzYUkpunPJmm9BFLpREqRcxnd1ypoK57dfHKTUdWXT7aTbZH5cplVj15AYIraU4RRAK1hrOlLa5pgp1QU1p44a8BkTdPAZoNKfRxnoPyATR090da6JEWNy2LyqT0k+61cxwurc2JCkPqvx8NXxFo0Eh72bVnCh+3X8O0/RBLGPi1y3gSzJzmzKvEg/igao0x0q5veXKba7YAbxCD98tCRqwojc+vK8XB2t2DE0gbUTtSErMTSDD2xlnfJiDGwNwBiYopmzFjryE0+xhQP0jY3UYZToJSG1bn6HP53TapWjI+6mL7sxicR1tdZ+Mjk6kG7mSKsGkmTcOlmi621c74GLKKbCN0oTpDIZdsCh8GLBdNsAGA4wdH5bzPyaowplVtsts0SZq4cQnbrXxos94IE5Jw4cJfC83kEcVhu3wDqJ9Fxl1kTQszeoBFXtOei7LYMkb/zX0Jf7S7noRACyAc3FTPa1ZSDUdR1TJrWibLLWp+rLqR9OmQXimov1QdMFdtotYy7aAT6XXCZkLaOEJjT2dAdBzYO5u4oiv26KHjMGv+872WdQ8TVtYLFEpp3lW/lgbV1vnyJiGOi8myCMCUGFgvDMtxDaf9UFKa38e6wP4MvGl8zOH+KyQ1mGBBUPQvEjoRBQeh/5BAQqJwoN3DvFMcfYLL/cj2DNrWPiOf7RLACoYrxFOIRajfrUBmfcfhI9gGyz2jNJWDWnRn5Be2KzfZtA1zcR34PjD+vqKzXpTWLTQTJrNBLuctEcJlTw/93TN1h+9jxDAV+1u/2zLkCmPWl4sWCmuEEGTuEUzKDHQkXSEdQptkkFYBS9y2GeGmk2B67tJ7RnHLL2opBQVsGmGKSTRMjaiMU2MsG0fVvGetyKLm1BUvb1ipamDD1/ruaU871AYZziu18aFpfWC o2JphCLc bSh/UPQdSTJG2BMVqzqx8KcDqtQ5O4EYwqU5tm+ePN/35PVZohg7AzdCkWThs9/DCPLViezZnU9Z+qeZ+UJSBNoqKpwcoPx/VYRiwQMQ/JmC5ISx5QQQ8VZ2I6dcNryLvTwyCKr2o3GeKJMCL6OH4bqZ9NpEy9eLgAeZIhlk6whtNimConTl6Ing0xU7+7UDunnE18Dz3dgR8PzrCa2H6aZSgIQsJktS6ViKEZM1VMNUiB1Mkm3B7w0RdEg== 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: List-Subscribe: List-Unsubscribe: Dan Williams writes: > Andy Shevchenko wrote: > [..] >> > > but if you want to stick with your variant some improvements can be done: >> > > >> > > #define for_each_resource_XXX(_root, _p) \ >> > > for (typeof(_root) __root = (_root), __p = _p = __root->child; \ >> > > __p && _p; _p = next_resource_XXX(__root, _p)) >> > > >> > > >> > > 1) no need to have local variable in parentheses; >> > > 2) no need to have iterator in parentheses, otherwise it would be crazy code >> > > that has put something really wrong there and still expect the thing to work. >> > >> > Why not: >> > >> > #define for_each_resource_XXX(_root, _p) \ >> > for (typeof(_root) __root = (_root), __p = _p = __root->child; \ >> > _p; _p = next_resource_XXX(__root, _p)) >> > >> > The __p is only to allow for _p to be initialized in the first statement >> > without causing a new "_p" shadow to be declared. >> >> If people think this would be better than the existing patterns, okay. fine. > > I think this case is different than the existing patterns in that the > iterator variable needs to be initiatlized from a declared variable, and > as Ying said, my proposal is busted. > > To your point though, lets add a comment on why this macro is a bit > different to avoid people like me making bad cleanup suggestions. Sure. Will do that. -- Best Regards, Huang, Ying