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 41E12EB64DD for ; Wed, 2 Aug 2023 02:59:12 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id CC5BE28011D; Tue, 1 Aug 2023 22:59:11 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id C74D5280112; Tue, 1 Aug 2023 22:59:11 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B63AD28011D; Tue, 1 Aug 2023 22:59:11 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id A377A280112 for ; Tue, 1 Aug 2023 22:59:11 -0400 (EDT) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 6CD4CB1E8F for ; Wed, 2 Aug 2023 02:59:11 +0000 (UTC) X-FDA: 81077658102.23.A0CD458 Received: from out30-99.freemail.mail.aliyun.com (out30-99.freemail.mail.aliyun.com [115.124.30.99]) by imf30.hostedemail.com (Postfix) with ESMTP id 3B53A80007 for ; Wed, 2 Aug 2023 02:59:08 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=none; spf=pass (imf30.hostedemail.com: domain of baolin.wang@linux.alibaba.com designates 115.124.30.99 as permitted sender) smtp.mailfrom=baolin.wang@linux.alibaba.com; dmarc=pass (policy=none) header.from=alibaba.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1690945149; 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; bh=9VjaYqU810IE637ebw9svCRP9tyy0N8/633VhgcOARc=; b=IaZvUQr3sxdyMbQdxJIaWme0XHtHF0HsH/2ZMaKtBTQbPA12Oi63o7YxZ6HnMcfJKnhsPj RBQnN799ErXmdqvFmQKVCq5l9mNpEgwgOPnxsVUOkHJdpp8iLJc+jXud26MSvu9fUIISq+ QDR7fBi08FROZE35uIQmPrkrOm8nR2U= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1690945149; a=rsa-sha256; cv=none; b=ONwMIoIvBMeSIp2r1PpvNwGNejHFurx1noN1iaVHZDkNAigaCVJl8MTxBbpVyqmWeOMJ45 yJS5i0to8WRhjYTLBL36R/BC8i+6JhZ2z57iB8xGP1asjw/SDa5lNxnkTurHOqySBfxbIr M0Ca0BaE5TlfC5F+BRnf9VzbAxLeQS8= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=none; spf=pass (imf30.hostedemail.com: domain of baolin.wang@linux.alibaba.com designates 115.124.30.99 as permitted sender) smtp.mailfrom=baolin.wang@linux.alibaba.com; dmarc=pass (policy=none) header.from=alibaba.com X-Alimail-AntiSpam:AC=PASS;BC=-1|-1;BR=01201311R131e4;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=7;SR=0;TI=SMTPD_---0VotEpv._1690945144; Received: from 30.97.48.77(mailfrom:baolin.wang@linux.alibaba.com fp:SMTPD_---0VotEpv._1690945144) by smtp.aliyun-inc.com; Wed, 02 Aug 2023 10:59:05 +0800 Message-ID: Date: Wed, 2 Aug 2023 10:59:32 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 Subject: Re: [PATCH 4/5] mm/compaction: remove unnecessary cursor page in isolate_freepages_block To: Kemeng Shi , linux-mm@kvack.org, linux-kernel@vger.kernel.org, akpm@linux-foundation.org Cc: mgorman@techsingularity.net, willy@infradead.org, david@redhat.com References: <20230729174354.2239980-1-shikemeng@huaweicloud.com> <20230729174354.2239980-5-shikemeng@huaweicloud.com> From: Baolin Wang In-Reply-To: <20230729174354.2239980-5-shikemeng@huaweicloud.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Stat-Signature: anm78g1pnsmbaxkspunh1hpw6ewpc5yu X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 3B53A80007 X-Rspam-User: X-HE-Tag: 1690945148-825071 X-HE-Meta: U2FsdGVkX1+GY7JI0gyH6qD+qIrUCgKQi4RB7PHv7BxxoqAEgtK3VDR59BaMF8egbIW0g7ZgmzIAMSlGLrZPbCesnjhMLkO+CL1WFEgR1u6J9bpZAf2lx7bQNJkv/4GQqAsvQWCaV7JPci2vt9IPUayUVgULyuHKNkF5o9gx7p3aSM89PFiaa43E0SeZ9WLgj0Q1tNRY3pb5YHEv6fMnLcNY9OQWT29/QtGfF/hWxUJp93O2VHdAI/6ei1SWuzsnRaUrBCbiLHHHW1oMNOnOOsgoK+XdKaNCn3yjKxq7MpDobWM9fw9IeZznirqp7/gjKNYvZv4qqgsEzRdLdd4c7pwdmQ+FzQIfESKw04mN2YWs7h9PR+jWAFXCPuSoYU2rfnNBabWEi9EQflP+frZ37aqhKkf7GJ/LCb2RCTQOQRNkSFW5JOviH8DzX8QeJssultjMsxchoAqaAiq8omu295Rx/ioS8n9iB2rCqCjfG/mex1feVFgW+bjCuvBtGjgC0KXgAEJCkutRHGMhpVdf0uZ/SYQYwvt3sGsQOr48wh0rlOm3lpg9luLzhr9oJ+tumd9WzlBIT95HqS5RrMeyM/mZBPIN4DiBIp9jFL0pdftaBx5ohbM8SEDIRj3B6kPuLrlUxUca9Im1WnRwam9UOPhvedlyxB/P3oYAPb4BzsdWkx/ms1sZ8jLRSW9cHzFrRH6JvxWwwWMFVlbBkAIPxZxdz0aXe/6+JFUnT8nxqoCoApU4bFNCF3oTQB8ilIyI6RjPlHXIXduitl+zO2mb9EbNRexiLaEv4WpAZD0f5//EeFXtCSXKvcEm3HxL1l9mpVZHgtf8QYhdyIQGSBaWugVemQUAlt9800Jdh3MllA3HB0RJfRAwJAzXP196RWSia4GbK54LYM7E5EWcC5ovlI2k7tbBK0uevxTH9jwJbSLZlKNJ+/QJKgwX+XJ4c+Pk5XbvLkpwgPDQE4T5jq9 BmVmpb5n vEZgToylGtTcIim7bu43WCHZnZ8/nAaFTuJNZDVGv3LvpmKtxfoiMvYCtIdPbHeg9FBe+Annul2/ij2W4XUrPwvy0yISd6M72HQBW3JyDzIEbKm+2CHSz3y1W++FIvDPgsvVhK90vIouzmBwuiwtwGqdI/9olw4N8Z/hwT5eS6hN7xe7RTjLsXCffmkNYq04Dersrd5XzWM126FPIHN5gt61TlA== 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: On 7/30/2023 1:43 AM, Kemeng Shi wrote: > The cursor is only used for page forward currently. We can simply move page > forward directly to remove unnecessary cursor. > > Signed-off-by: Kemeng Shi LGTM. Reviewed-by: Baolin Wang > --- > mm/compaction.c | 11 +++++------ > 1 file changed, 5 insertions(+), 6 deletions(-) > > diff --git a/mm/compaction.c b/mm/compaction.c > index 65791a74c5e8..cfb661f4ce23 100644 > --- a/mm/compaction.c > +++ b/mm/compaction.c > @@ -589,7 +589,7 @@ static unsigned long isolate_freepages_block(struct compact_control *cc, > bool strict) > { > int nr_scanned = 0, total_isolated = 0; > - struct page *cursor; > + struct page *page; > unsigned long flags = 0; > spinlock_t *locked = NULL; > unsigned long blockpfn = *start_pfn; > @@ -599,12 +599,11 @@ static unsigned long isolate_freepages_block(struct compact_control *cc, > if (strict) > stride = 1; > > - cursor = pfn_to_page(blockpfn); > + page = pfn_to_page(blockpfn); > > /* Isolate free pages. */ > - for (; blockpfn < end_pfn; blockpfn += stride, cursor += stride) { > + for (; blockpfn < end_pfn; blockpfn += stride, page += stride) { > int isolated; > - struct page *page = cursor; > > /* > * Periodically drop the lock (if held) regardless of its > @@ -628,7 +627,7 @@ static unsigned long isolate_freepages_block(struct compact_control *cc, > > if (likely(order <= MAX_ORDER)) { > blockpfn += (1UL << order) - 1; > - cursor += (1UL << order) - 1; > + page += (1UL << order) - 1; > nr_scanned += (1UL << order) - 1; > } > goto isolate_fail; > @@ -665,7 +664,7 @@ static unsigned long isolate_freepages_block(struct compact_control *cc, > } > /* Advance to the end of split page */ > blockpfn += isolated - 1; > - cursor += isolated - 1; > + page += isolated - 1; > continue; > > isolate_fail: