Received: by 2002:a05:6602:18e:0:0:0:0 with SMTP id m14csp3726561ioo; Mon, 30 May 2022 08:19:25 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzx6eI8Ozoar9oCCFzpqpUxe2llWbnq1h/jdzGBEEQscTpwShS3ocR4o8W6J60msYyAjLS/ X-Received: by 2002:a17:907:961a:b0:6ff:b74:7e67 with SMTP id gb26-20020a170907961a00b006ff0b747e67mr25578995ejc.424.1653923965195; Mon, 30 May 2022 08:19:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1653923965; cv=none; d=google.com; s=arc-20160816; b=y3ZBXpAh6B8g+rhP4W0XcPigGouS/Mp0kNQIpd14nBo9x7dNBfdpwNw1seNujldBgL g78WxkRyMAY3pBXZedOQOOArcwissB1KYecGZgS2RuNTQXr+I3DdhRJPBGNDAJfG4pgj iAXaGg2brVhHQvKXfMekziREZMQ+4w6Fs/QJNyRc0U1LJrC7x3+S/RumytLQ5eM+DES4 DgCVJ5QCjJNYjrFawf9+JGwvKzfyyGA1LERrgIJTFnhp/EBXKz/StdnreFscv92YgAss qqeFpmroyW8XTrsNMni3pHg3DMcQXP9SvA52USGkCTUKglG8PPpykmeJBOwWvwnL2r2J nD9w== 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 :message-id:date:subject:cc:to:from; bh=5SD+G/4dE84doHXovkmUxtZYgEHTJGpeMokldqSq8J8=; b=YsSaLLjbOeb2toaAV8OY0ESoiUG0Ddq1mXc76a23bfyz8SRJneudEKzh5O3Sqf1gMl BUHj/A9TvCvIQnKsTi7hCAB/0DE7zojW7rbM5JdqRMweB9UqCwSeokk8m4bkaklkoPet ZEowI8R+INNCP4IZt6NXXBwhs1Q1EjF7tmYeA4Zo7azTXLjz0snqDLdJteubHom0Sb+s l57UkOrgABDWpXopvm3gAuAKqEkx7ARco6lTRS0RUYQNTHftDyLy0zPqwSo7dx4gdX4n Ui6jZVVcFagVDN3F9uGhcRDu+bc+KrZxVNa+YZO+jYglHimhT1tO3z3b4LD7a8jOSp2e uTig== 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id t21-20020a170906179500b006f38560fe61si10798083eje.94.2022.05.30.08.18.55; Mon, 30 May 2022 08:19:25 -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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235711AbiE3Lug (ORCPT + 99 others); Mon, 30 May 2022 07:50:36 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40804 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234546AbiE3Lue (ORCPT ); Mon, 30 May 2022 07:50:34 -0400 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 2428B69CF6 for ; Mon, 30 May 2022 04:50:33 -0700 (PDT) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id D72CC113E; Mon, 30 May 2022 04:50:32 -0700 (PDT) Received: from a077893.arm.com (unknown [10.163.36.153]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id B0F893F766; Mon, 30 May 2022 04:50:30 -0700 (PDT) From: Anshuman Khandual To: linux-mm@kvack.org Cc: Anshuman Khandual , Andrew Morton , Zi Yan , linux-kernel@vger.kernel.org Subject: [RFC] mm/page_isolation: Fix an infinite loop in isolate_single_pageblock() Date: Mon, 30 May 2022 17:20:27 +0530 Message-Id: <20220530115027.123341-1-anshuman.khandual@arm.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE 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 HugeTLB allocation (32MB pages on 4K base page) via sysfs on arm64 platform is getting stuck in isolate_single_pageblock(), because of an infinite loop Because head_pfn always evaluate the same, so does pfn, and the outer loop never exits. Dropping the relevant code block, which seems redundant, makes the problem go away. Cc: Andrew Morton Cc: Zi Yan Cc: linux-mm@kvack.org Cc: linux-kernel@vger.kernel.org Fixes: b2c9e2fbba32 ("mm: make alloc_contig_range work at pageblock granularity") Signed-off-by: Anshuman Khandual --- I am not sure about this fix, and also did not find much time today to debug any further. There are much code changes around this function in recent days. This problem is present on latest mainline kernel. - Anshuman mm/page_isolation.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/mm/page_isolation.c b/mm/page_isolation.c index 6021f8444b5a..b0922fee75c1 100644 --- a/mm/page_isolation.c +++ b/mm/page_isolation.c @@ -389,10 +389,6 @@ static int isolate_single_pageblock(unsigned long boundary_pfn, int flags, struct page *head = compound_head(page); unsigned long head_pfn = page_to_pfn(head); - if (head_pfn + nr_pages <= boundary_pfn) { - pfn = head_pfn + nr_pages; - continue; - } #if defined CONFIG_COMPACTION || defined CONFIG_CMA /* * hugetlb, lru compound (THP), and movable compound pages -- 2.20.1