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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id E1AD6CD6E4A for ; Tue, 2 Jun 2026 04:40:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:In-Reply-To:Content-Type: MIME-Version:References:Message-ID:Subject:Cc:To:From:Date:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=srXwF/yhg+rbIcHkVtsiegnwql9Xlps6nvacpPywWg4=; b=aRIZLPXDow1WYNFI3xia9V5twN ikIBLNUFTNHOEwrsH0/0XZyQApTz/HH6BTJ/jfTp56korptWRtCzI+Vr1DU4Nux5Ik2ufiRiUz2Qx qmY/yF0qbar+BHwmlOo63E57ASZ9qdaAMgUwthsUEntmhNXIqCkdsfRCXovIsj9ZB3lSJpbbY+2ku d+sgnYmMNwMtYBSwgSX0GZqVKh5j+fElIC0mGtsmWcki1X4Ss+eoiiwMifJh8UyJ0LRyzQ9aWvOt4 DOltsDNWPJ3qvBbLNyFFxTZZQNIhvy0kMfIXlMGMxzPyG6WVbnbem8DCdM+nXDF3+E5dOWyuQt97E ILeDBQWg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wUGvb-0000000CHYh-0l5U; Tue, 02 Jun 2026 04:40:35 +0000 Received: from tor.source.kernel.org ([172.105.4.254]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wUGva-0000000CHYX-0wj5; Tue, 02 Jun 2026 04:40:34 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by tor.source.kernel.org (Postfix) with ESMTP id 568BC6001A; Tue, 2 Jun 2026 04:40:33 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 43B6F1F00893; Tue, 2 Jun 2026 04:40:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1780375233; bh=srXwF/yhg+rbIcHkVtsiegnwql9Xlps6nvacpPywWg4=; h=Date:From:To:Cc:Subject:References:In-Reply-To; b=AVxln0DQCY1PNRUb9aWahhA0PjWLTKukZTz6gcf/R6ukpUVkqFE8CWcIeAncWYn7N 9SVxYIW6aEFeLIlpyYOFHeaEHecDbIuH3q+g5YLAKEHaNn6ZRrgsqJihYLcXVkdG1x u8LM5FkmNtBFW2jPuWRqGDHrJbv/cHyD11bDv+X/qQmKmosro2X4Pg0c151+Y8SSAv hQWSIBG7Hk+uobN/a+cvh066m33eGdPyJnddbAG+dmD9IyBZMt1CDCndeajD7bKPSP 7X0uyZ4JancSZq6PFTUoH3q4q3QPPvxzUudeqGg4m53tr/brD9qU9izIXKAOHQBjPp P3lcfQWN227kQ== Date: Tue, 2 Jun 2026 06:40:24 +0200 From: "Oscar Salvador (SUSE)" To: Muchun Song Cc: "David Hildenbrand (Arm)" , Muchun Song , Andrew Morton , Catalin Marinas , Will Deacon , Palmer Dabbelt , Paul Walmsley , Huacai Chen , Andreas Larsson , "David S. Miller" , linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-riscv@lists.infradead.org, loongarch@lists.linux.dev, sparclinux@vger.kernel.org, Alexandre Ghiti , Albert Ou , WANG Xuerui , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko Subject: Re: [PATCH v3 1/5] mm/sparse-vmemmap: provide generic vmemmap_set_pmd() and vmemmap_check_pmd() Message-ID: References: <20260601084845.3792171-1-songmuchun@bytedance.com> <20260601084845.3792171-2-songmuchun@bytedance.com> <0D4AF42F-37C5-4A76-9703-44ACC6374C48@linux.dev> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <0D4AF42F-37C5-4A76-9703-44ACC6374C48@linux.dev> X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Mon, Jun 01, 2026 at 08:37:42PM +0800, Muchun Song wrote: > > > > On Jun 1, 2026, at 20:22, David Hildenbrand (Arm) wrote: > > > > On 6/1/26 10:48, Muchun Song wrote: > >> The two weak functions are currently no-ops on every architecture, > >> forcing each platform that needs them to duplicate the same handful > >> of lines. Provide a generic implementation: > >> > >> - vmemmap_set_pmd() simply sets a huge PMD with PAGE_KERNEL protection. > >> > >> - vmemmap_check_pmd() verifies that the PMD is present and leaf, > >> then calls the existing vmemmap_verify() helper. > >> > >> Architectures that need special handling can continue to override the > >> weak symbols; everyone else gets the standard version for free. > >> > >> Signed-off-by: Muchun Song > >> --- > >> v2->v3: > >> - Replace BUG_ON() with WARN_ON_ONCE() in vmemmap_set_pmd() > >> --- > >> mm/sparse-vmemmap.c | 7 ++++++- > >> 1 file changed, 6 insertions(+), 1 deletion(-) > >> > >> diff --git a/mm/sparse-vmemmap.c b/mm/sparse-vmemmap.c > >> index 112ccf9c71ca..99e2be39671b 100644 > >> --- a/mm/sparse-vmemmap.c > >> +++ b/mm/sparse-vmemmap.c > >> @@ -386,12 +386,17 @@ int __meminit vmemmap_populate_hvo(unsigned long addr, unsigned long end, > >> void __weak __meminit vmemmap_set_pmd(pmd_t *pmd, void *p, int node, > >> unsigned long addr, unsigned long next) > >> { > >> + WARN_ON_ONCE(!pmd_set_huge(pmd, virt_to_phys(p), PAGE_KERNEL)); > > > > > > Not sure if a VM_WARN_ON_ONCE() would be appropriate. (then, we have to move the > > pmd_set_huge() out of the statement). > > I think it might be better to keep WARN_ON_ONCE here. This way, we can still > monitor for warnings in production while keeping the code simple. IIRC there was a discussion about this some time ago, given the fact that quite some people out there tend to have 'panic_on_warn', but then again, if we fail to set a PMD here it means something pretty nasty happened, so I am ok with that. -- Oscar Salvador SUSE Labs