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 9CA02C5475B for ; Thu, 14 Mar 2024 07:19:56 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 18F8C80083; Thu, 14 Mar 2024 03:19:56 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 1402280073; Thu, 14 Mar 2024 03:19:56 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0089C80083; Thu, 14 Mar 2024 03:19:55 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id E4D8E80073 for ; Thu, 14 Mar 2024 03:19:55 -0400 (EDT) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id AAA35A1B8F for ; Thu, 14 Mar 2024 07:19:55 +0000 (UTC) X-FDA: 81894795150.12.262507C Received: from out30-113.freemail.mail.aliyun.com (out30-113.freemail.mail.aliyun.com [115.124.30.113]) by imf10.hostedemail.com (Postfix) with ESMTP id 30ADBC000C for ; Thu, 14 Mar 2024 07:19:51 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=linux.alibaba.com header.s=default header.b=QGVkHQjv; spf=pass (imf10.hostedemail.com: domain of baolin.wang@linux.alibaba.com designates 115.124.30.113 as permitted sender) smtp.mailfrom=baolin.wang@linux.alibaba.com; dmarc=pass (policy=none) header.from=linux.alibaba.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1710400793; 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=4VyEpQvKnzsnbyb4g0kdtIVt+NLI3n4kn6UGAi3EzQw=; b=wKo0vNM63/DwRvkM4pek8xo5sTJqxeGVTa4wiJSuvl6Pj/heA/06qx51PmnZskuwgmlHn+ ilzDW2MjsM/ww20C41OHLePDOybfhVRv6RdOZqDuaC/VYTxTDsd6frU8NH5QvTpwxYEAJK jgV0/wCO0HLw0FMt0uHS6QoBy7yiUD0= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1710400793; a=rsa-sha256; cv=none; b=PK1G6+uyGposQwqAh16T+4Vfr//EWBiuR8vCAQ1Tsi/6Br5zUgrrXFluIfrsnghVQm8JcA gKrsBO94bqlANeuBtobbExWSr7XSVQXxyDxIReDBqYHAUPA7uRl/bek5LyQ+mHKoUOdD+9 DdeDzb+r/BDecoaAcmRLXeS99u7GMJE= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=pass header.d=linux.alibaba.com header.s=default header.b=QGVkHQjv; spf=pass (imf10.hostedemail.com: domain of baolin.wang@linux.alibaba.com designates 115.124.30.113 as permitted sender) smtp.mailfrom=baolin.wang@linux.alibaba.com; dmarc=pass (policy=none) header.from=linux.alibaba.com DKIM-Signature:v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.alibaba.com; s=default; t=1710400789; h=Message-ID:Date:MIME-Version:Subject:To:From:Content-Type; bh=4VyEpQvKnzsnbyb4g0kdtIVt+NLI3n4kn6UGAi3EzQw=; b=QGVkHQjvDKYSVEmxA30wQWA89KxFRIPx40SVX+rs51+t9y013NfPRzrIFzgLQS5ozOTWth4SEWnvXg0XS81CGw766/kmlC4bw2pO5VAO90+5t9VFY88WMB7KAO134VUDRJSA1Bv3C2uXJ60+XAx0eju9hQU3rbCTBQk+v0beVtE= X-Alimail-AntiSpam:AC=PASS;BC=-1|-1;BR=01201311R141e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=ay29a033018046059;MF=baolin.wang@linux.alibaba.com;NM=1;PH=DS;RN=10;SR=0;TI=SMTPD_---0W2RhI75_1710400786; Received: from 30.97.56.71(mailfrom:baolin.wang@linux.alibaba.com fp:SMTPD_---0W2RhI75_1710400786) by smtp.aliyun-inc.com; Thu, 14 Mar 2024 15:19:47 +0800 Message-ID: Date: Thu, 14 Mar 2024 15:19:45 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 2/3] mm/compaction: add and use for_each_populated_zone_pgdat() helper To: Luis Chamberlain , akpm@linux-foundation.org, jhubbard@nvidia.com, vbabka@suse.cz, mgorman@suse.de, linux-mm@kvack.org Cc: linux-kernel@vger.kernel.org, dave@stgolabs.net, p.raghav@samsung.com, da.gomez@samsung.com References: <20240314005436.2962962-1-mcgrof@kernel.org> <20240314005436.2962962-3-mcgrof@kernel.org> From: Baolin Wang In-Reply-To: <20240314005436.2962962-3-mcgrof@kernel.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Stat-Signature: b6takbqg4g3wt9iwbo38qho18umsqgqm X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 30ADBC000C X-Rspam-User: X-HE-Tag: 1710400791-917430 X-HE-Meta: U2FsdGVkX1+Xu2rcy5aFiEbxwFIv4RAsjlwc8Kly8y1Sf8l8KbkUZER4Yxs2aKn10Vqi1rnFRJ75S2dje2C5NolM3sXU/zzsWxyM8FjNfKDncF7SVh/FLvughxNeZvoy/liG2ChDfdbB6qda3k5ptgGOf+umdosmEspkMPn9Chxy8WIOja2G7SIQtwo4iDSc7qSD/3dIuIraPY36mxcWukJoC4aJwfvw+rHXURmDfJjguiFpB08U6reU0IqYSXbHQymNMSY5ZeKclGCAwHnTRUwoqpqq+ON5/qoe2mYQMeusmYwmF93Gil2rxUjFnH8zIbHkfi0jOF18Zhlsubd8YxlJw9Q73mUv3hQ0o36ToUZ1Ji0vNghimopyAdPPxuYV8eao08kwH8e9AhCyF3mS0hQapkM0cpHZeOM6xhbLuNBAmP0nTeOIpb5XEKIxo0HEB/nUCOMETeRbMlJo2hCWYqNfgSrHne0+mSx/pcXATwQciVN/mDkfX4CktISdkpHavUpsGJtN32jPejTSVxOZefliubhp7BIBUWBzME6kdEbEHMHcR3m5EIa5uKYFQngUc1D23gnIZmOIZUGdLxbNubCPhIEX9ST2M2uj6eyJmQk8KvUhjNXyQFlMLb4n8Hb4dWqUmlOuXZ4kYAsLEV/3/19jU4nd/taSDM94iX/3m2FxgqnZt91Sgev37I2xgKtChzqRFQe6HQeXvZi/fPOBjJL6koXE5inOYkgL8aeRm4CdwBPTpr4jRokL85Hlem1CI2enyDiQnEgzt7R6faIbPRR4ZJOEbQFDrSdGOIETcaRYzjfpB+yU471zPOx6zUWfIhFBKEXPEnM27qSzVlDSVWpDOPbq8GLPVPuhQ5oZMyGAbi3y8BfnAhQqT80ps1YcEDei7Pqgy0XHEXyBAbe8UIakXMppRBr0PBguKpV7e4tzRs0fsu2RR0LmoKT6Iy4wcn5Y9upVokQ= 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: On 2024/3/14 08:54, Luis Chamberlain wrote: > We can just wrap most of the work done on fragmentation_score_node() > into a pgdat helper for populated zones. Add the helper and use it. > > Signed-off-by: Luis Chamberlain > --- > include/linux/mmzone.h | 8 ++++++++ > mm/compaction.c | 9 ++------- > 2 files changed, 10 insertions(+), 7 deletions(-) > > diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h > index a497f189d988..1fd74c7100ec 100644 > --- a/include/linux/mmzone.h > +++ b/include/linux/mmzone.h > @@ -1597,6 +1597,14 @@ extern struct zone *next_zone(struct zone *zone); > ; /* do nothing */ \ > else > > +#define for_each_populated_zone_pgdat(zone, pgdat) \ > + for (zone = pgdat->node_zones; \ > + zone; \ > + zone = next_zone(zone)) \ > + if (!populated_zone(zone)) \ > + ; /* do nothing */ \ > + else I think this will break the original logics, since the next_zone() will iterate over all memory zones, instead of only the memory zones of the specified node. > static inline struct zone *zonelist_zone(struct zoneref *zoneref) > { > return zoneref->zone; > diff --git a/mm/compaction.c b/mm/compaction.c > index b961db601df4..023a09d0786d 100644 > --- a/mm/compaction.c > +++ b/mm/compaction.c > @@ -2151,16 +2151,11 @@ static unsigned int fragmentation_score_zone_weighted(struct zone *zone) > static unsigned int fragmentation_score_node(pg_data_t *pgdat) > { > unsigned int score = 0; > + struct zone *zone; > int zoneid; > > - for (zoneid = 0; zoneid < MAX_NR_ZONES; zoneid++) { > - struct zone *zone; > - > - zone = &pgdat->node_zones[zoneid]; > - if (!populated_zone(zone)) > - continue; > + for_each_populated_zone_pgdat(zone, pgdat) > score += fragmentation_score_zone_weighted(zone); > - } > > return score; > }