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 0BB04E77194 for ; Thu, 2 Jan 2025 18:12:59 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9566B6B00E8; Thu, 2 Jan 2025 13:12:58 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 906A16B00EA; Thu, 2 Jan 2025 13:12:58 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7F5436B00EB; Thu, 2 Jan 2025 13:12:58 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 635E66B00E8 for ; Thu, 2 Jan 2025 13:12:58 -0500 (EST) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 141FF160275 for ; Thu, 2 Jan 2025 18:12:58 +0000 (UTC) X-FDA: 82963305012.09.F97815A Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf12.hostedemail.com (Postfix) with ESMTP id 4503140014 for ; Thu, 2 Jan 2025 18:12:34 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=none; spf=pass (imf12.hostedemail.com: domain of cmarinas@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=cmarinas@kernel.org; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=arm.com (policy=none) ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1735841553; 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=VNYzd1QJqO6EbDeuZbvW7H1KJN74a6Do8DTMy/8tdHw=; b=mGD/8gQHuxr6yKxaWdc2N39D4740CANYt2PoP0Zey7He1Kvq00N7EcKcDDD7L3H+L7qVBT DkYI9TIA2zolrvvDgtxcmD1UxPZoExlbfkvWwY5JTGng/XfvdwdboWvU7OK5bpCjj7dE1L 9OhuN/SFgqjR1CBy6BiDARVxAyEgQOw= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1735841553; a=rsa-sha256; cv=none; b=One7THmwbYVlzGoMb7jdPDTlm5rUecIi7v/RYiS3hq02UNSbUNgK4AjWsIcS75CynssuTw MEq72UQzT0WvEHCmr7Ullm1S3lclQca8J7QWUE/FXagRT50oL/8STuLFrAcyhLVDP3vANF hJEDUxqWZs+lw0KZfAlmb3GJA7zXqHc= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=none; spf=pass (imf12.hostedemail.com: domain of cmarinas@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=cmarinas@kernel.org; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=arm.com (policy=none) Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 5301A5C581B; Thu, 2 Jan 2025 18:12:14 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1F8F6C4CED0; Thu, 2 Jan 2025 18:12:52 +0000 (UTC) Date: Thu, 2 Jan 2025 18:12:50 +0000 From: Catalin Marinas To: Anshuman Khandual Cc: Zhenhua Huang , will@kernel.org, ardb@kernel.org, ryan.roberts@arm.com, mark.rutland@arm.com, joey.gouly@arm.com, dave.hansen@linux.intel.com, akpm@linux-foundation.org, chenfeiyang@loongson.cn, chenhuacai@kernel.org, linux-mm@kvack.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v2 2/2] arm64: mm: implement vmemmap_check_pmd for arm64 Message-ID: References: <20241209094227.1529977-1-quic_zhenhuah@quicinc.com> <20241209094227.1529977-3-quic_zhenhuah@quicinc.com> <39a85800-47c5-4529-906d-5a40e58ce136@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <39a85800-47c5-4529-906d-5a40e58ce136@arm.com> X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 4503140014 X-Stat-Signature: jj8atky1qaup8kmq4qbn786zua8qu51z X-Rspam-User: X-HE-Tag: 1735841554-140180 X-HE-Meta: U2FsdGVkX1+0BvW1QWhUyQ+8EW0MJZWEyj6rdzhSy0RDM8ReTVKw6NqdpmxfE/h9J4RVrxo2BFXluCoSQNeLYlof8zDFl4bBj46G0F5ITrKz/WfLmbWaJ8NbRpTCB2FQNwceqMN54NSIJZ7rfvNkxFm3wxvI+ptJTH3QAqUgcbsQSXYuqEAG7i4DOcunjGgk9Nb6HeMKTuUBESm4TtiFdyhsgskgCfzlaRWBy8rXSqdGhReQWPofY2rKiK+gCd3cBP3cphHP3/5ionrOgCItKJLgXwezXnkC0B9R1592aTcxJqX2u8xWzq7nEj4uxPgSkLAU15/GGBDTNezO6j/BQn5bvlpFSJ/9cDCYp9Cenj6lfaCibomPmJ3PPuCAgG/fmysprwdKuXurxXrs+tmFAHJS/3i07Jvkw6MWvRJ6BEjFo5sTCgC9GydkRiSxxY6VISn0Bwm2jtejPor/LOmR/rQlulzlSIpHJ6e7T672vRGBVp/q0Uq0CWg9Ns2pPRR4wtQw5TcsOpIZNyodVsbYDuaqRBG9VV4CTd3n7giDOZsxy6N2eNXjqUjWh4Bywd0FW1srB64JqVGvQ3OYhr48cUDLvy0K8DU/RKZ/aq00ZaZ1IJ2KZ5xk4y61M1MapxJhyuI60aAyCOQyDHDbHLREV2Fgz6utijNpLB9h6caXoiCVgMjSv774nnuQ5glCpu8IQ5iOtAkwFJB8QAijD4pNXqMYCwILSgkV4kb2i05GaL2OA6qYNmGYKSZ2+ZiQz0rLiZnEXspj2swcv0N6DY8/oyNtXmr+VJbvPVti5q/N2obApXpeGhcZiVrPP7q4COQ1NSzAfqKeiOVn3YqLynsrtkyhsCrecPaqqB/gITnxeQnj60MHAukLuEYKelM2AT47IqxcaREzBtKKV7mbUJ0K21HHkkZ8bAmfxOnIBXGr94+RnTnImVUHbIOmUz3rH48+zQbaLyrimwlRzBAyvof roEMPTYg iu+yhpQq75CXAm3D916M6SORVFqZUQBKRe9SscOjpkHJTElXcNracY5Fee7LGjjxXyvhRKD24aFuIPhEkWYOJIjP7N4J4fYaKqUbb4NLRMhTZ2bHDFBAlBykcGuq5gFDjEkRTD6AlkR8eLFkkNFBiSBPPcI2H1lyrfHyeKSzI+CjgTruxxsthIOZ4IpxLShLCyV03cxEdNE7l2SVnkMrr2odQiPLGA/vLpXkGfO7m0lYUMP/CDzh9z1++wz58K3uph5+bz8y2i86857ZxErL0TGd5xWq7mN4TnkfzITsA77+wCHKBrpd0lW+cFlzhPB1TeCi7xo+vQNs3pU/IFowiqRDaRcJ/rKH/CvXpHaXraq1oNjgyTE2tlW1TrH5gEqRLjlH5cT65LX+pCKg= 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: List-Subscribe: List-Unsubscribe: On Fri, Dec 27, 2024 at 08:27:18AM +0530, Anshuman Khandual wrote: > On 12/21/24 00:05, Catalin Marinas wrote: > > On Mon, Dec 09, 2024 at 05:42:27PM +0800, Zhenhua Huang wrote: > >> diff --git a/arch/arm64/mm/mmu.c b/arch/arm64/mm/mmu.c > >> index fd59ee44960e..41c7978a92be 100644 > >> --- a/arch/arm64/mm/mmu.c > >> +++ b/arch/arm64/mm/mmu.c > >> @@ -1169,7 +1169,8 @@ int __meminit vmemmap_check_pmd(pmd_t *pmdp, int node, > >> unsigned long addr, unsigned long next) > >> { > >> vmemmap_verify((pte_t *)pmdp, node, addr, next); > >> - return 1; > >> + > >> + return pmd_sect(*pmdp); > > Please change this as pmd_sect(READ_ONCE(*pmdp)) instead. > > >> } > >> > >> int __meminit vmemmap_populate(unsigned long start, unsigned long end, int node, > > > > Don't we need this patch only if we implement the first one? Please fold > > it into the other patch. > > Seems like these patches might not be related. > > While creating huge page based vmemmap mapping during vmemmap_populate_hugepages(), > vmemmap_check_pmd() validates if a populated (i.e pmd_none) PMD already represents > a huge mapping and can be skipped there after. > > Current implementation for vmemmap_check_pmd() on arm64, unconditionally returns 1 > thus asserting that the given populated PMD entry is a huge one indeed, which will > be the case unless something is wrong. vmemmap_verify() only ensures that the node > where the pfn is allocated from is local. > > int __meminit vmemmap_check_pmd(pmd_t *pmdp, int node, > unsigned long addr, unsigned long next) > { > vmemmap_verify((pte_t *)pmdp, node, addr, next); > return 1; > } > > However it does not really check the entry to be a section mapping which it should. > Returning pmd_sect(READ_ONCE(*pmdp)) is the right thing, which should have been the > case from the beginning when vmemmap_check_pmd() was added. I guess because arm64's > original vmemmap_populate() checked only for vmemmap_verify() as well. So probably > this does not need a "Fixes: " tag. I did not say the patch is wrong, only that it wouldn't be needed unless we have the other patch in this series. However, if we do apply the other patch, we definitely need this change, so keeping them together would make it easier to backport. -- Catalin