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 21BB5C77B7D for ; Mon, 15 May 2023 11:34:12 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9B1FE900005; Mon, 15 May 2023 07:34:11 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 961BC900002; Mon, 15 May 2023 07:34:11 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 829D1900005; Mon, 15 May 2023 07:34: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 73575900002 for ; Mon, 15 May 2023 07:34:11 -0400 (EDT) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 09A8E161428 for ; Mon, 15 May 2023 11:34:11 +0000 (UTC) X-FDA: 80792280702.25.D79269E Received: from outbound-smtp36.blacknight.com (outbound-smtp36.blacknight.com [46.22.139.219]) by imf03.hostedemail.com (Postfix) with ESMTP id 2BEB320011 for ; Mon, 15 May 2023 11:34:08 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=none; spf=pass (imf03.hostedemail.com: domain of mgorman@techsingularity.net designates 46.22.139.219 as permitted sender) smtp.mailfrom=mgorman@techsingularity.net; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1684150449; a=rsa-sha256; cv=none; b=GhVMJMCfCcoDPlQrF6iM6PiPqZQwofFbJcTSclrHVzRqXVrFlWsB2UzXuO6PpDT8wcGF2p l1CYK6P72k/sTu5i8mjCi6J82mPoNyo8wJPIlcD87k7+/vaC7NJwoEKNno8xoWmF9T3pxv ZOuAoluBJHBrGpg/3kqe1l0a/yzsYb8= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=none; spf=pass (imf03.hostedemail.com: domain of mgorman@techsingularity.net designates 46.22.139.219 as permitted sender) smtp.mailfrom=mgorman@techsingularity.net; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1684150449; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=y1cOqJXY7aZ9Lb2ZYK9B8/0b1tBjH9Wwuq/UJgsC/Lo=; b=5H3zUqPHDBnTQ4dxZXlkjLcVPbXDySbJqXD39TQAAn97T4yXnyO08vEtO0c4RX4X2SiLvL LsegMAKn5YgPA6WcRNW/kBefbZtHww7XdXG4zpEd51wFiKshbHdR4n62bAsw3mLDBmuZw6 unoPtD2O9cjyJUuOd8l/BUiafqhilc0= Received: from mail.blacknight.com (pemlinmail04.blacknight.ie [81.17.254.17]) by outbound-smtp36.blacknight.com (Postfix) with ESMTPS id 3A417230D for ; Mon, 15 May 2023 12:34:07 +0100 (IST) Received: (qmail 25659 invoked from network); 15 May 2023 11:34:07 -0000 Received: from unknown (HELO localhost.localdomain) (mgorman@techsingularity.net@[193.118.249.27]) by 81.17.254.9 with ESMTPA; 15 May 2023 11:34:06 -0000 From: Mel Gorman To: Vlastimil Babka Cc: Andrew Morton , Jiri Slaby , Maxim Levitsky , Michal Hocko , Pedro Falcato , Paolo Bonzini , Chuyi Zhou , Linux-MM , LKML , Mel Gorman Subject: [PATCH 1/4] mm: compaction: Ensure rescanning only happens on partially scanned pageblocks Date: Mon, 15 May 2023 12:33:41 +0100 Message-Id: <20230515113344.6869-2-mgorman@techsingularity.net> X-Mailer: git-send-email 2.35.3 In-Reply-To: <20230515113344.6869-1-mgorman@techsingularity.net> References: <20230515113344.6869-1-mgorman@techsingularity.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspam-User: X-Stat-Signature: qgpo9aimapjxg683jwcqth3dsmsft6yc X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 2BEB320011 X-HE-Tag: 1684150448-108526 X-HE-Meta: U2FsdGVkX19ZNXaeFILcePQWPYoGRXqkH5x+4OHWWnjjx/aEeqVX5yDsQvIICzpXOIBr6qcLfoyh6mBzZ/etVz7tqzoZsMKVaA5MCsbCIz0MyeOT6D5zHEKB7OenogMnzl16EvbnqrGZDz3QwcFz8tLXsVcjHLhrN92yHbCwj+WQICpNcGyg9QlRV2g2kAVRYrke5OxC0m3X+3AcKu3uYvfuXnNjzEMjFQuXMtUG4nSdFZOjtOgO/Pk5vLBulwFCU0MSOUwJThMWPw8c1TK8ArM3xTstwuM+Fdngjo673U3OgZMuutC1js7RvRCO2x1SCu+u22LC8e9IDan4fkZVAdvBnm+M3Vv+QskFPPBBEJIczoxeA3//ItwyIa6ErfYJUSRxAmf+5mg6cnXufzQ58bF5u6uSRsLFndod4m3Kjyxw2RLt8vfVuNVL9L3yTP+0IM+tx3iuJcM0DPIJ1SEXEEvqdnWLYuyYzq7Z4hygY3fS3aGm8SlXcH+M1nnrkNoBfQN4+jHJYbo8t8VPkcxHd1qWk/9aQ+qUiXWcUaAi178vrgfO7ounRKuF5UBoU0KDPD2RnoyaCGxRHHhmZ8pi1+OYFlgm35tlfzlgvhcqTXP8Em3MdIDpXhqUVzOKYZN1aPdtS9QTTeX3vUyfmXqXiEdHfHlOwTJ4C+znsblVWwqUHiDdKxbhKv8uUPQRkhRAOjuR40b6r+mLQyJrGxQr/tN8KN6BErH4nktiguyveIWuLBGhUZhlGI9u6Ex+yGfkg85Fhu9IHch8URS6kRvrV2HDVhUvglDp0SkWBg8gOoAkVXHTJiwolvPQ0wBZchFJXdz3ABtPpShFgrW2IkP7osnCpDl3AFI/+fieSA2UUoYsKUIyQp1I7nmm9NJXyspVQ0uHk0oRamYzNxD6i0nZ28aefM++UMoSe/SwylEfAEHPvQFlJTTsadLtMXm+nBVUgUVaaHwnI3VBXn3hKmr 4aR4wmBl KrPHM/kIAKZZd67UVT1HkZ2UTKZ5v1wAXV+xcXhunHcET7GIzjCtFQG8XURMDF6M23J4r1TaSarRvR1GYpuf9zCAgtYUejmITjMbhCYpzQj0T8WP4HNioQ3OlAKlzWRO/CX5gCoA3ovXeASQLIs2iKeZA+F5/t4+hGY42kJkZhr31yJdpCkyx5csqcGWrYpYs+n4ATq9RGe2mYNXDZUy9PVg0AmTpUX4RarfT7f+xocE+RnET+bd5lPXbeLkTCdgZWWjAQ5GZ5+RnZvlAiXa9HCkcvy004Nk5IsZY 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: compact_zone() intends to rescan pageblocks if there is a failure to migrate "within the current order-aligned block". However, the pageblock scan may already be complete and moved to the next block causing the next pageblock to be "rescanned". Ensure only the most recent pageblock is rescanned. Reported-by: Vlastimil Babka Signed-off-by: Mel Gorman --- mm/compaction.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mm/compaction.c b/mm/compaction.c index c8bcdea15f5f..81791c124bb8 100644 --- a/mm/compaction.c +++ b/mm/compaction.c @@ -2464,8 +2464,9 @@ compact_zone(struct compact_control *cc, struct capture_control *capc) * fast_find_migrateblock revisiting blocks that were * recently partially scanned. */ - if (cc->direct_compaction && !cc->finish_pageblock && - (cc->mode < MIGRATE_SYNC)) { + if (!pageblock_aligned(cc->migrate_pfn) && + cc->direct_compaction && !cc->finish_pageblock && + (cc->mode < MIGRATE_SYNC)) { cc->finish_pageblock = true; /* -- 2.35.3