Received: by 2002:a05:7412:1703:b0:e2:908c:2ebd with SMTP id dm3csp1555024rdb; Sat, 26 Aug 2023 07:20:33 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHOJOIGjsIqlsBLxeZUIAJjBZ/hchfjOeTJ2fh8G5UbmVCBS4GVfzDhgtv9WkpoXf5r3KRp X-Received: by 2002:a19:8c0f:0:b0:500:7685:839 with SMTP id o15-20020a198c0f000000b0050076850839mr12856509lfd.65.1693059632776; Sat, 26 Aug 2023 07:20:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1693059632; cv=none; d=google.com; s=arc-20160816; b=gUrSwl8ThxFZuR6NkjFdtUZnKXRbQI6xtUzRZ1mhHNP/unOgNT2mpU8vh+6ABlleNf RPRTrrclZYSXch4OftYt9o0mFBQYNjm5/+nMkOHotOYW5woh5M/AnELE4hOPtMz/FgWW qHSKHiKLAHQEnt8zOFHzFd43dq1b4ff3g9qvAHELUTxRDKFYhRNFQpktcmhTcxRG6v8K OciioWx9HvfhvF23fOYG6qOEA84uqqnFIAPEeSp/rP3+5jCpT+McC59OO3cGr2ruE1cp 0/RzAkpig3wzNshnXTBlbmlUwD8yYMn3Z/qnN9nriDJW8eWiyVY51SLM2CLwcIh+rtIQ VXmw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=3ibcKLYyjaSxKfsSsleIJKW0N3SuBExqNLwazcEr80I=; fh=7X1D0cuj4i7WnUDqaoMj7KsxQ8x5+cd0yXZBmp9V0LY=; b=Jgs36DfkpCJ4AURiBPD7BVqKk/STkjIHug4fQqjOrhMy2KH95yHOeMzRQdvElp4m5p 2dRhKgqk8MJBbN/wDXa84G2Fl1b4pcrQcFiillbJDZk6mxClF9jy2s2i7UvwZcR8V4jl nll2v1OyUN/JMG1UJx6ZDJZrUK4WpN5isrFIx0ym+7Ezp3oEfOfKZyh/9rcwtyEh+vyD jVr//Jd7ox4S5/dDyRJ7MasQTZIzTrk0yQ+3+eWPWSJRljM050vn88LDkFlLwKkKumca MG2vKOWJ/jzQjRPqXHzka/754TtqoAY1LNC25qLw1mSlZcXN5unAGfyJpQ/wcraYz6Qo pT0A== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id d9-20020aa7c1c9000000b005222d16f2d4si283373edp.533.2023.08.26.07.19.57; Sat, 26 Aug 2023 07:20:32 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231918AbjHZHgh (ORCPT + 99 others); Sat, 26 Aug 2023 03:36:37 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56354 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231970AbjHZHgg (ORCPT ); Sat, 26 Aug 2023 03:36:36 -0400 Received: from dggsgout11.his.huawei.com (unknown [45.249.212.51]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AC3B22139 for ; Sat, 26 Aug 2023 00:36:33 -0700 (PDT) Received: from mail02.huawei.com (unknown [172.30.67.153]) by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4RXpXs6pWMz4f3lDj for ; Sat, 26 Aug 2023 15:36:29 +0800 (CST) Received: from huaweicloud.com (unknown [10.175.124.27]) by APP1 (Coremail) with SMTP id cCh0CgDHQi98q+lk6GgZBg--.2153S6; Sat, 26 Aug 2023 15:36:31 +0800 (CST) From: Kemeng Shi To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, akpm@linux-foundation.org, baolin.wang@linux.alibaba.com, mgorman@techsingularity.net, david@redhat.com, willy@infradead.org Cc: shikemeng@huaweicloud.com Subject: [PATCH v2 4/7] mm/compaction: simplify pfn iteration in isolate_freepages_range Date: Sat, 26 Aug 2023 23:36:14 +0800 Message-Id: <20230826153617.4019189-5-shikemeng@huaweicloud.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20230826153617.4019189-1-shikemeng@huaweicloud.com> References: <20230826153617.4019189-1-shikemeng@huaweicloud.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-CM-TRANSID: cCh0CgDHQi98q+lk6GgZBg--.2153S6 X-Coremail-Antispam: 1UD129KBjvJXoW7uryUKw1xAr1xKrW8Zr4fXwb_yoW8Kr43pa y3G3Wxur1UGay5WFyUAw1Duw15GwsxCF47Wr4UJr1rZasYvF92yF9ayryqyFy0vryxArWq vrsFgFWDta1DZa7anT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUP014x267AKxVWrJVCq3wAFc2x0x2IEx4CE42xK8VAvwI8IcIk0 rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2jI8I6cxK62vIxIIY0VWUZVW8XwA2048vs2IY02 0E87I2jVAFwI0_JF0E3s1l82xGYIkIc2x26xkF7I0E14v26ryj6s0DM28lY4IEw2IIxxk0 rwA2F7IY1VAKz4vEj48ve4kI8wA2z4x0Y4vE2Ix0cI8IcVAFwI0_Gr0_Xr1l84ACjcxK6x IIjxv20xvEc7CjxVAFwI0_Cr0_Gr1UM28EF7xvwVC2z280aVAFwI0_GcCE3s1l84ACjcxK 6I8E87Iv6xkF7I0E14v26rxl6s0DM2AIxVAIcxkEcVAq07x20xvEncxIr21l5I8CrVACY4 xI64kE6c02F40Ex7xfMcIj6xIIjxv20xvE14v26r1j6r18McIj6I8E87Iv67AKxVWUJVW8 JwAm72CE4IkC6x0Yz7v_Jr0_Gr1lF7xvr2IYc2Ij64vIr41lF7I21c0EjII2zVCS5cI20V AGYxC7MxAIw28IcxkI7VAKI48JMxC20s026xCaFVCjc4AY6r1j6r4UMI8I3I0E5I8CrVAF wI0_Jr0_Jr4lx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVWUtVW8ZwCIc4 0Y0x0EwIxGrwCI42IY6xIIjxv20xvE14v26r1j6r1xMIIF0xvE2Ix0cI8IcVCY1x0267AK xVW8JVWxJwCI42IY6xAIw20EY4v20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Jr0_Gr 1lIxAIcVC2z280aVCY1x0267AKxVW8JVW8JrUvcSsGvfC2KfnxnUUI43ZEXa7sRiVbyDUU UUU== X-CM-SenderInfo: 5vklyvpphqwq5kxd4v5lfo033gof0z/ X-CFilter-Loop: Reflected X-Spam-Status: No, score=0.1 required=5.0 tests=BAYES_00,DATE_IN_FUTURE_06_12, MAY_BE_FORGED,RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org We call isolate_freepages_block in strict mode, continuous pages in pageblock will be isolated if isolate_freepages_block successed. Then pfn + isolated will point to start of next pageblock to scan no matter how many pageblocks are isolated in isolate_freepages_block. Use pfn + isolated as start of next pageblock to scan to simplify the iteration. The pfn + isolated always points to start of next pageblock as: In case isolated buddy page has order higher than pageblock: 1. page in buddy page is aligned with it's order 2. order of page is higher than pageblock order Then page is aligned with pageblock order. So pfn of page and isolated pages count are both aligned pageblock order. So pfn + isolated is pageblock order aligned. In case isolated buddy page has order lower than pageblock: Buddy page with order N contains two order N - 1 pages as following: | order N | |order N - 1|order N - 1| So buddy pages with order N - 1 will never cross boudary of order N. Similar, buddy pages with order N - 2 will never cross boudary of order N - 1 and so on. Then any pages with order less than pageblock order will never crosa boudary of pageblock. Signed-off-by: Kemeng Shi Reviewed-by: Baolin Wang --- mm/compaction.c | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/mm/compaction.c b/mm/compaction.c index b4d03c9ffe7c..2937e754cfb7 100644 --- a/mm/compaction.c +++ b/mm/compaction.c @@ -739,21 +739,11 @@ isolate_freepages_range(struct compact_control *cc, block_end_pfn = pageblock_end_pfn(pfn); for (; pfn < end_pfn; pfn += isolated, - block_start_pfn = block_end_pfn, - block_end_pfn += pageblock_nr_pages) { + block_start_pfn = pfn, + block_end_pfn = pfn + pageblock_nr_pages) { /* Protect pfn from changing by isolate_freepages_block */ unsigned long isolate_start_pfn = pfn; - /* - * pfn could pass the block_end_pfn if isolated freepage - * is more than pageblock order. In this case, we adjust - * scanning range to right one. - */ - if (pfn >= block_end_pfn) { - block_start_pfn = pageblock_start_pfn(pfn); - block_end_pfn = pageblock_end_pfn(pfn); - } - block_end_pfn = min(block_end_pfn, end_pfn); if (!pageblock_pfn_to_page(block_start_pfn, -- 2.30.0