From patchwork Wed May 11 04:43:00 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rei Yamamoto X-Patchwork-Id: 12845797 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 23420C433F5 for ; Wed, 11 May 2022 05:04:08 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4558B6B0073; Wed, 11 May 2022 01:04:07 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 404886B0075; Wed, 11 May 2022 01:04:07 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2D7AB6B0078; Wed, 11 May 2022 01:04:07 -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 1AB6A6B0073 for ; Wed, 11 May 2022 01:04:07 -0400 (EDT) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id DAAF92140E for ; Wed, 11 May 2022 05:04:06 +0000 (UTC) X-FDA: 79452270492.14.DDFCE1B Received: from esa3.hc1455-7.c3s2.iphmx.com (esa3.hc1455-7.c3s2.iphmx.com [207.54.90.49]) by imf04.hostedemail.com (Postfix) with ESMTP id 12DAD400AA for ; Wed, 11 May 2022 05:03:55 +0000 (UTC) X-IronPort-AV: E=McAfee;i="6400,9594,10343"; a="72409036" X-IronPort-AV: E=Sophos;i="5.91,216,1647270000"; d="scan'208";a="72409036" Received: from unknown (HELO oym-r1.gw.nic.fujitsu.com) ([210.162.30.89]) by esa3.hc1455-7.c3s2.iphmx.com with ESMTP; 11 May 2022 14:04:05 +0900 Received: from oym-m1.gw.nic.fujitsu.com (oym-nat-oym-m1.gw.nic.fujitsu.com [192.168.87.58]) by oym-r1.gw.nic.fujitsu.com (Postfix) with ESMTP id 2EC9B6019E for ; Wed, 11 May 2022 14:04:03 +0900 (JST) Received: from m3003.s.css.fujitsu.com (m3003.s.css.fujitsu.com [10.128.233.114]) by oym-m1.gw.nic.fujitsu.com (Postfix) with ESMTP id 2A788D99A6 for ; Wed, 11 May 2022 14:04:02 +0900 (JST) Received: from localhost.localdomain (unknown [10.125.5.220]) by m3003.s.css.fujitsu.com (Postfix) with ESMTP id D5879200B3AF; Wed, 11 May 2022 14:04:01 +0900 (JST) From: Rei Yamamoto To: akpm@linux-foundation.org Cc: mgorman@techsingularity.net, vvghjk1234@gmail.com, aquini@redhat.com, ddutile@redhat.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org, yamamoto.rei@jp.fujitsu.com Subject: [PATCH] mm, compaction: fast_find_migrateblock() should return pfn in the target zone Date: Wed, 11 May 2022 13:43:00 +0900 Message-Id: <20220511044300.4069-1-yamamoto.rei@jp.fujitsu.com> X-Mailer: git-send-email 2.27.0 MIME-Version: 1.0 X-TM-AS-GCONF: 00 Authentication-Results: imf04.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=fujitsu.com; spf=pass (imf04.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-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 12DAD400AA X-Rspam-User: X-Stat-Signature: rrs6tbns8qn7thney43wckyrpaibdtuo X-HE-Tag: 1652245435-662055 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: 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. Signed-off-by: Rei Yamamoto Reviewed-by: Miaohe Lin Acked-by: Mel Gorman Reviewed-by: Oscar Salvador --- mm/compaction.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mm/compaction.c b/mm/compaction.c index fe915db6149b..de42b8e48758 100644 --- a/mm/compaction.c +++ b/mm/compaction.c @@ -1858,6 +1858,8 @@ static unsigned long fast_find_migrateblock(struct compact_control *cc) update_fast_start_pfn(cc, free_pfn); pfn = pageblock_start_pfn(free_pfn); + if (pfn < cc->zone->zone_start_pfn) + pfn = cc->zone->zone_start_pfn; cc->fast_search_fail = 0; found_block = true; set_pageblock_skip(freepage);