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 CAEA4C433EF for ; Thu, 12 May 2022 02:08:18 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 247C78D0002; Wed, 11 May 2022 22:08:18 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 1F6978D0001; Wed, 11 May 2022 22:08:18 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 097628D0002; Wed, 11 May 2022 22:08:18 -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 EB78B8D0001 for ; Wed, 11 May 2022 22:08:17 -0400 (EDT) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay11.hostedemail.com (Postfix) with ESMTP id B8B9180DBA for ; Thu, 12 May 2022 02:08:17 +0000 (UTC) X-FDA: 79455456234.07.86F830D Received: from esa3.hc1455-7.c3s2.iphmx.com (esa3.hc1455-7.c3s2.iphmx.com [207.54.90.49]) by imf01.hostedemail.com (Postfix) with ESMTP id E12C5400AC for ; Thu, 12 May 2022 02:08:04 +0000 (UTC) X-IronPort-AV: E=McAfee;i="6400,9594,10344"; a="72515688" X-IronPort-AV: E=Sophos;i="5.91,218,1647270000"; d="scan'208";a="72515688" Received: from unknown (HELO oym-r4.gw.nic.fujitsu.com) ([210.162.30.92]) by esa3.hc1455-7.c3s2.iphmx.com with ESMTP; 12 May 2022 11:08:14 +0900 Received: from oym-m1.gw.nic.fujitsu.com (oym-nat-oym-m1.gw.nic.fujitsu.com [192.168.87.58]) by oym-r4.gw.nic.fujitsu.com (Postfix) with ESMTP id 8A48DE07F6 for ; Thu, 12 May 2022 11:08:12 +0900 (JST) Received: from m3002.s.css.fujitsu.com (msm3.b.css.fujitsu.com [10.128.233.104]) by oym-m1.gw.nic.fujitsu.com (Postfix) with ESMTP id BB928D99EA for ; Thu, 12 May 2022 11:08:11 +0900 (JST) Received: from localhost.localdomain (unknown [10.125.5.220]) by m3002.s.css.fujitsu.com (Postfix) with ESMTP id 7629E200B383; Thu, 12 May 2022 11:08:11 +0900 (JST) From: Rei Yamamoto To: linmiaohe@huawei.com Cc: akpm@linux-foundation.org, aquini@redhat.com, ddutile@redhat.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org, mgorman@techsingularity.net, vvghjk1234@gmail.com, yamamoto.rei@jp.fujitsu.com Subject: Re: [PATCH] mm, compaction: fast_find_migrateblock() should return pfn in the target zone Date: Thu, 12 May 2022 10:47:36 +0900 Message-Id: <20220512014736.16376-1-yamamoto.rei@jp.fujitsu.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <07e0ceb8-a637-b011-bbf6-ba760a0b12e4@huawei.com> References: <07e0ceb8-a637-b011-bbf6-ba760a0b12e4@huawei.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-TM-AS-GCONF: 00 X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: E12C5400AC X-Stat-Signature: 5dzdrp7wbpf8zp9h7p1q5bkywufpqh4o Authentication-Results: imf01.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=fujitsu.com; spf=pass (imf01.hostedemail.com: domain of yamamoto.rei@jp.fujitsu.com designates 207.54.90.49 as permitted sender) smtp.mailfrom=yamamoto.rei@jp.fujitsu.com X-Rspam-User: X-HE-Tag: 1652321284-278458 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 Wed, 11 May 2022 17:26:16 Miaohe Lin wrote: > On 2022/5/11 15:07, Rei Yamamoto wrote: >> On Wed, 11 May 2022 14:25:34 Miaohe Lin wrote: >>> On 2022/5/11 12:43, Rei Yamamoto wrote: >>>> Prevent returning a pfn outside the target zone in case that not >>>> aligned with pageblock boundary. >>>> Otherwise isolate_migratepages_block() would handle pages not in >>>> the target zone. >>>> >>> >>> IIUC, the sole caller isolate_migratepages will ensure the pfn won't outside >>> the target zone. So the below code change might not be necessary. Or am I miss >>> something ? >> >> While block_start_pfn is ensured, this variable is not used as the argument for >> isolate_migratepages_block(): >> ----- >> static isolate_migrate_t isolate_migratepages(struct compact_control *cc) >> { >> : >> low_pfn = fast_find_migrateblock(cc); >> block_start_pfn = pageblock_start_pfn(low_pfn); >> if (block_start_pfn < cc->zone->zone_start_pfn) >> block_start_pfn = cc->zone->zone_start_pfn; <--- block_start_pfn is ensured not outside >> the target zone >> : >> block_end_pfn = pageblock_end_pfn(low_pfn); >> : >> for (; block_end_pfn <= cc->free_pfn; >> fast_find_block = false, >> cc->migrate_pfn = low_pfn = block_end_pfn, >> block_start_pfn = block_end_pfn, >> block_end_pfn += pageblock_nr_pages) { >> : >> if (isolate_migratepages_block(cc, low_pfn, block_end_pfn, <--- low_pfn is passed as >> the argument > > Sorry, I think you're right. And could you please add the runtime effect of this issue? > > Anyway, this patch looks good to me now. Thanks! Thank you for your review. The runtime effect is that compaction become unintended behavior. For example, pages not in the target zone are added to cc->migratepages list in isolate_migratepages_block(). As a result, pages migrate between nodes unintentionally. Thanks, Rei