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 4D4C6C04E69 for ; Tue, 1 Aug 2023 09:08:20 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DE98D900008; Tue, 1 Aug 2023 05:08:19 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D9A5A8E0002; Tue, 1 Aug 2023 05:08:19 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C8772900008; Tue, 1 Aug 2023 05:08:19 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id BA1E18E0002 for ; Tue, 1 Aug 2023 05:08:19 -0400 (EDT) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 91270120BEE for ; Tue, 1 Aug 2023 09:08:19 +0000 (UTC) X-FDA: 81074959518.27.4957971 Received: from outbound-smtp03.blacknight.com (outbound-smtp03.blacknight.com [81.17.249.16]) by imf16.hostedemail.com (Postfix) with ESMTP id 53C5418000C for ; Tue, 1 Aug 2023 09:08:16 +0000 (UTC) Authentication-Results: imf16.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf16.hostedemail.com: domain of mgorman@techsingularity.net designates 81.17.249.16 as permitted sender) smtp.mailfrom=mgorman@techsingularity.net ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1690880896; 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: in-reply-to:in-reply-to:references:references; bh=fbbUx1ltMmG7PpjFYISi1cqMqxqnmwLF+JeOLQEkjek=; b=x+w8YIZRPiR/WJTXf+tUm19LXR+0tF+7jhRzNXM2SouOZD3aWiqK7gxfZoR8e2RHXlbMoc f9IkHCiQEiDs6TbLNnM9dx6CUeBxq1HZHjJSFIMyjGICR1LRzcQmVi38oFYOgyZoWGX9d+ WXn0v8wpCF+74ZNXZ3EUKCEUAtvk8IQ= ARC-Authentication-Results: i=1; imf16.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf16.hostedemail.com: domain of mgorman@techsingularity.net designates 81.17.249.16 as permitted sender) smtp.mailfrom=mgorman@techsingularity.net ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1690880896; a=rsa-sha256; cv=none; b=KVKKsmcp51ncarQp0Bm1VjhF4FiTiVBLAXEiVhov5KwhWN57V9ALBxsAEOOHCPb8dcrCgX MkrDlTYfI7baIuHxZi84fizsagjYPGKeUlDgHl1k3TIh6IuEtxMqadVRb7J8aedI/gCYKw 0ROEFY95DUTNHN9cd6VLaLHcbSA4Hx0= Received: from mail.blacknight.com (pemlinmail04.blacknight.ie [81.17.254.17]) by outbound-smtp03.blacknight.com (Postfix) with ESMTPS id 704FFC0D7D for ; Tue, 1 Aug 2023 10:08:14 +0100 (IST) Received: (qmail 25971 invoked from network); 1 Aug 2023 09:08:14 -0000 Received: from unknown (HELO techsingularity.net) (mgorman@techsingularity.net@[84.203.20.191]) by 81.17.254.9 with ESMTPSA (AES256-SHA encrypted, authenticated); 1 Aug 2023 09:08:14 -0000 Date: Tue, 1 Aug 2023 10:08:12 +0100 From: Mel Gorman To: Johannes Weiner Cc: Andrew Morton , Vlastimil Babka , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] mm: compaction: fix endless looping over same migrate block Message-ID: <20230801090812.3o6utiufbwhgevom@techsingularity.net> References: <20230731172450.1632195-1-hannes@cmpxchg.org> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15 Content-Disposition: inline In-Reply-To: <20230731172450.1632195-1-hannes@cmpxchg.org> X-Rspamd-Queue-Id: 53C5418000C X-Rspam-User: X-Rspamd-Server: rspam02 X-Stat-Signature: xmo95w9jai83kudoxmjqgajmz4ofyexh X-HE-Tag: 1690880896-641859 X-HE-Meta: U2FsdGVkX19uQN2lu9DfR/m1Nz+e3a+50Zf9XOktVku9mFcgv1ZyA5neDbVauOaLJLY4TEi11MrtP+rIb5Q7/i73/4FInKj4wFVEHmYFHDqBHxTfB03wYCvnMhI8DzTKAxzVP7oXhyTz4U4/meWpzEJLqgMp1GUZd7f3nkKZaBEzBYVqMm0waMVBtSdQ6rX8eQrS/QgEEVU6kJqRTCKDRI2RsCPvZHPf7SJDHg2dRZ5YcW6192YKeeQVqZzfMC0oBc3FM16ojVw36FEjcVv6we7pN3AWxSwsElUg0yzIU9MYKrgiWbEbPYsTykRhsZ45yRDLTqNJhcuyWLZAcDQ5NfS8R/tSffcOGup/QgYHVLOmT/A/2gj5DspsXbA7G5S25Jn2ANU0zwpGri5qbOLvrtrcXpWZFKvNZ25SOtBDnSNZLtr2t6c8yVj1fEDBmU0w4ySeMbFOiDy4IM02WCwsBkKvMu0B08DtXE9cCJdmepHQPh5ED84OJkCE38UCJ81nkaAboIRA7WBRsn959HwI8G8atFNei+xFXREFcXuLAesbGFYqJ08rRLaddV0CCsWvOK1E3Dpu93AgwjHLJ6YZGceJ33u8TqLBUIFIDtFDp/aitWMmxarSq6kpCT9vCyt4Ifw+9PS5z+6a/rtbKoSS0fwTelKyNf+789b9jr/F6apLU6R0z1wHqcjs8/0UJZDBmmWlsYocLA0QV8ofOlvBoaie5acOLQUn+YqseKY+0JqVRuJEZX6pVvuE5HeJR9VMmzTNO12ehMECr99buh+7fIGKO42Nnjur9ma7mZj0PdHr0R2+yaCmNVgrnips2vZWOcoNcL79b7/XeJVXz79RIwsAxakmRWYFbHsmMCGNtzPQr8g2l3gHPqn5vPp+UEfqLBv8g/Jd0HndRYHZ6M3au0WPmXRojG1cASaQBAGOKQpVveNBr7G3w82QUADCG1PftkETjswogmCdh5mncOv oxadC+Ib EYBUlbegkzqS7hcjgJ8Nt4CtTUQeu8SPQq7Wi3GtV+48OXstDFfIOGDVg/0hClG5EztaeuYXNd2+7tAwWYaAIRpA5ehwBhOua28E65HW8nGOmiz9mMWn3JL3JB1brGZYXlUIqs9oq8mIg0E+4rsLIRU4+KUuc2e5NdJnWFKPaNgWtdkCGFCkV0YXzprn5yFYf3RuBVbXMC/XP8y9Nx0rud1mcjPR129i+CNT00cfo3pKPbhSjjwiaSNDClaXfrdONBPQ6rCEQmTRrMU/CajluXK9rtNzTCX+wazkO 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 Mon, Jul 31, 2023 at 01:24:50PM -0400, Johannes Weiner wrote: > During stress testing, the following situation was observed: > > 70 root 39 19 0 0 0 R 100.0 0.0 959:29.92 khugepaged > 310936 root 20 0 84416 25620 512 R 99.7 1.5 642:37.22 hugealloc > > Tracing shows isolate_migratepages_block() endlessly looping over the > first block in the DMA zone: > > hugealloc-310936 [001] ..... 237297.415718: mm_compaction_finished: node=0 zone=DMA order=9 ret=no_suitable_page > hugealloc-310936 [001] ..... 237297.415718: mm_compaction_isolate_migratepages: range=(0x1 ~ 0x400) nr_scanned=513 nr_taken=0 > hugealloc-310936 [001] ..... 237297.415718: mm_compaction_finished: node=0 zone=DMA order=9 ret=no_suitable_page > hugealloc-310936 [001] ..... 237297.415718: mm_compaction_isolate_migratepages: range=(0x1 ~ 0x400) nr_scanned=513 nr_taken=0 > hugealloc-310936 [001] ..... 237297.415718: mm_compaction_finished: node=0 zone=DMA order=9 ret=no_suitable_page > hugealloc-310936 [001] ..... 237297.415718: mm_compaction_isolate_migratepages: range=(0x1 ~ 0x400) nr_scanned=513 nr_taken=0 > hugealloc-310936 [001] ..... 237297.415718: mm_compaction_finished: node=0 zone=DMA order=9 ret=no_suitable_page > hugealloc-310936 [001] ..... 237297.415718: mm_compaction_isolate_migratepages: range=(0x1 ~ 0x400) nr_scanned=513 nr_taken=0 > > The problem is that the functions tries to test and set the skip bit > once on the block, to avoid skipping on its own skip-set, using > pageblock_aligned() on the pfn as a test. But because this is the DMA > zone which starts at pfn 1, this is never true for the first block, > and the skip bit isn't set or tested at all. As a result, > fast_find_migrateblock() returns the same pageblock over and over. > > If the pfn isn't pageblock-aligned, also check if it's the start of > the zone to ensure test-and-set-exactly-once on unaligned ranges. > > Thanks to Vlastimil Babka for the help in debugging this. > > Fixes: 90ed667c03fe ("Revert "Revert "mm/compaction: fix set skip in fast_find_migrateblock""") > Signed-off-by: Johannes Weiner Acked-by: Mel Gorman -- Mel Gorman SUSE Labs