From patchwork Mon Jan 29 06:00:22 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Aneesh Kumar K.V" X-Patchwork-Id: 13534940 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 8AA76C47422 for ; Mon, 29 Jan 2024 06:00:39 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DAFD56B007B; Mon, 29 Jan 2024 01:00:38 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id D609D6B007D; Mon, 29 Jan 2024 01:00:38 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C4F5F6B007E; Mon, 29 Jan 2024 01:00:38 -0500 (EST) 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 B35286B007B for ; Mon, 29 Jan 2024 01:00:38 -0500 (EST) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 4D31D120109 for ; Mon, 29 Jan 2024 06:00:38 +0000 (UTC) X-FDA: 81731299356.18.1A78638 Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55]) by imf10.hostedemail.com (Postfix) with ESMTP id EB4A9C0018 for ; Mon, 29 Jan 2024 06:00:35 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=soEmJUBG; spf=pass (imf10.hostedemail.com: domain of aneesh.kumar@kernel.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=aneesh.kumar@kernel.org; dmarc=pass (policy=none) header.from=kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1706508036; a=rsa-sha256; cv=none; b=0Uf7NHMihtBhxRCiMcVbGcuWQM0lkESqsNHJX1YWYkHBbHawMGtpZSNnDo1huIEtXFZh94 1qRS8PSnt1tCKYPCeSTzJpil1OfazZrOyIKHu5pKLmqyhLuvAJdS07Tu4dJclfdOAHJzJI BFtLzDXsNYKrKJfqIkrKjPvGZEHj4Cs= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=soEmJUBG; spf=pass (imf10.hostedemail.com: domain of aneesh.kumar@kernel.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=aneesh.kumar@kernel.org; dmarc=pass (policy=none) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1706508036; 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:references:dkim-signature; bh=fjYnWGbmpj/WNwVKnIO3XTpIfDmPD30qIe/gOPsEfak=; b=lnk4+c/YTjJpbjR29+wCB8XdtsAGnZkt9EtxehBkKmy45ZF/+S5cm3TfAJI8uybaPjMUuC vVIYQ33GJevLgvFHndsT4l66ta+FKKD0ZE7psSSPU0J9YowpfyX3WqDgCFV4Eg4BFXtJAm 4B9pMkOpTsSNcqg+zSY/ri+o9nR7s+E= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sin.source.kernel.org (Postfix) with ESMTP id EF7ABCE0FA6; Mon, 29 Jan 2024 06:00:30 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 06F00C433F1; Mon, 29 Jan 2024 06:00:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1706508029; bh=9Pq/7BElllkBJTi0W5KYK8XM39YAze7ovWSddD6L5Og=; h=From:To:Cc:Subject:Date:From; b=soEmJUBGtGdGYO7Tqh1mPJ/UKE9K3qpAKb4+llxGgBQaVeOIp9Dgmiv/BkAekMc1g a2bh13LwfW8KT3JGCTeTjzqIdq4wpLfuuqqZDNLDVkieyQs4iNtUgzz4tpsoK5zuzw GR3Abq6gfLtlnz9oXO4ur4RvJgNpy71dWBP8pH0tGKgwkONqm1S36l8tO8d3GEk63z UFv2BI/fNYmERUajEuu+QmCtybUZB/8VoyOazf2XORyLAS2Go/VIay2SVOmmf5V51V Ja2ypgKb9memyZM7gbam42H4MTa21Puw5nKxW1EvodnuA+OenDvtaEeOuQ90o3tKQS d+0zHt+snX6ow== From: "Aneesh Kumar K.V (IBM)" To: linux-mm@kvack.org, akpm@linux-foundation.org Cc: mpe@ellerman.id.au, linuxppc-dev@lists.ozlabs.org, "Aneesh Kumar K.V (IBM)" Subject: [PATCH] mm/debug_vm_pgtable: Fix BUG_ON with pud advanced test Date: Mon, 29 Jan 2024 11:30:22 +0530 Message-ID: <20240129060022.68044-1-aneesh.kumar@kernel.org> X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: EB4A9C0018 X-Stat-Signature: r9ibwnibegb661p8pfg9wc78zd1axsgb X-Rspam-User: X-HE-Tag: 1706508035-165837 X-HE-Meta: U2FsdGVkX18cZlMOCPozoqA/XijTfbfvMism3O/mxUzo5lN4Zmljki1HKcrdjF2a8CaYqBlmu8FgKvFj/UUgz1NKeQD8xgTKrm3YxaBVeqfUpaXocfShfuyVIn3uvjRmqwThyT6KHZEWSdq5ETAptYqLkwDkQXvAw5aljYnxs8jLg7RZWwL8k/4bUYKkzdhah63sqXHCfUg+k0OQrIpPwrwZS0InhUVt7EsVKerf7U+jnu6tIvLsSfY30Y+CJChnIgPQnDrih9wl9rPkimB4QEXgqu3URhdnQyns22Avp3rNcsblujWkTIUV2Na3wWWfPGmhQTYHkvAhzPM2nSLcChVyROCto6X9CRE1V48nXWLtm4PCLVECpyrNi7Sq6tL/nVOPJJEO1iTOz7OePLfDEsiuhFdN/iA3a5ar+7DNuQBQ49hWIwjK9kerWPTLn66idwWE/Xa5plHJ2sTckjOevvReGL3Yd7wRIlDAHZas+Xy/H8HKOcjbeWruHBJcYeUgNBTB/yECeggM9VhgTP3HSOrEFc2aFAiX+PPQmyh+Xk3k5nz6CorK7MFgEMoAYHxgtTGTwQwKoIMO7XYZdca/Tr/hzuBK6aa6uAFZtuMiP7crd6WLXlEfpMUfzSHfq2DxviTISVXhWSAIgFJh0dMqoonxuFQRS5mlbwruh0Gtt3Px8JcxOMjLScU5hDQutdP7u7siMIoi3NG5T1D6fmQZFklaxi6S86n5OteNuLH6dGOtZGYTT/71O6sVyrXF3L5zNpnvcAqze8H8u9vFVe1gKnluz8irpyaPOHpcIiqObHFfcHrhYjxBMOGhBf0WNVCBQ8nWsD6LlgdpC8E8GAgF+BIBbZL2Wdg5y09exDztn76ra5W40dleOgd5m5DxB2q4DUNJ06srpPxpVyHUxthKQnS3OtWDHEX6ghcg2FEu2cnjWXtjWnMhMeBx3zGgnKmPnGdaeY+xeNQ/s77wan0 lj4oGS5e UCLDbyHLwlGtdFfHqbXLH+so9vhnZx72s0gK5xLcv/jbWbB1z93jfiQZ7JjejC8Bi8LpzyowfUlApNT9MWDTvACxThaYsuhxyvUp48GHq7vA4K8LppN+l6oXvonOrmHr/IWQAxRIy/CTSNc7UGHgitO2CPGdX2wyNovLeEm2XoAO4rr000xBS9NuL5EpWro24YH9hLcumqx1cmWQY6DbKV3yiMe+RAAE6WG4sG1so6uy1FduUVVPizGV0C5mHt45ZHmOfGziS7uqvAX2DPvQnFelzGA== 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: Architectures like powerpc add debug checks to ensure we find only devmap PUD pte entries. These debug checks are only done with CONFIG_DEBUG_VM. This patch marks the ptes used for PUD advanced test devmap pte entries so that we don't hit on debug checks on architecture like ppc64 as below. WARNING: CPU: 2 PID: 1 at arch/powerpc/mm/book3s64/radix_pgtable.c:1382 radix__pud_hugepage_update+0x38/0x138 .... NIP [c0000000000a7004] radix__pud_hugepage_update+0x38/0x138 LR [c0000000000a77a8] radix__pudp_huge_get_and_clear+0x28/0x60 Call Trace: [c000000004a2f950] [c000000004a2f9a0] 0xc000000004a2f9a0 (unreliable) [c000000004a2f980] [000d34c100000000] 0xd34c100000000 [c000000004a2f9a0] [c00000000206ba98] pud_advanced_tests+0x118/0x334 [c000000004a2fa40] [c00000000206db34] debug_vm_pgtable+0xcbc/0x1c48 [c000000004a2fc10] [c00000000000fd28] do_one_initcall+0x60/0x388 Also kernel BUG at arch/powerpc/mm/book3s64/pgtable.c:202! .... NIP [c000000000096510] pudp_huge_get_and_clear_full+0x98/0x174 LR [c00000000206bb34] pud_advanced_tests+0x1b4/0x334 Call Trace: [c000000004a2f950] [000d34c100000000] 0xd34c100000000 (unreliable) [c000000004a2f9a0] [c00000000206bb34] pud_advanced_tests+0x1b4/0x334 [c000000004a2fa40] [c00000000206db34] debug_vm_pgtable+0xcbc/0x1c48 [c000000004a2fc10] [c00000000000fd28] do_one_initcall+0x60/0x388 Fixes: 27af67f35631 ("powerpc/book3s64/mm: enable transparent pud hugepage") Signed-off-by: Aneesh Kumar K.V (IBM) --- mm/debug_vm_pgtable.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/mm/debug_vm_pgtable.c b/mm/debug_vm_pgtable.c index 5662e29fe253..65c19025da3d 100644 --- a/mm/debug_vm_pgtable.c +++ b/mm/debug_vm_pgtable.c @@ -362,6 +362,12 @@ static void __init pud_advanced_tests(struct pgtable_debug_args *args) vaddr &= HPAGE_PUD_MASK; pud = pfn_pud(args->pud_pfn, args->page_prot); + /* + * Some architectures have debug checks to make sure + * huge pud mapping are only found with devmap entries + * For now test with only devmap entries. + */ + pud = pud_mkdevmap(pud); set_pud_at(args->mm, vaddr, args->pudp, pud); flush_dcache_page(page); pudp_set_wrprotect(args->mm, vaddr, args->pudp); @@ -374,6 +380,7 @@ static void __init pud_advanced_tests(struct pgtable_debug_args *args) WARN_ON(!pud_none(pud)); #endif /* __PAGETABLE_PMD_FOLDED */ pud = pfn_pud(args->pud_pfn, args->page_prot); + pud = pud_mkdevmap(pud); pud = pud_wrprotect(pud); pud = pud_mkclean(pud); set_pud_at(args->mm, vaddr, args->pudp, pud); @@ -391,6 +398,7 @@ static void __init pud_advanced_tests(struct pgtable_debug_args *args) #endif /* __PAGETABLE_PMD_FOLDED */ pud = pfn_pud(args->pud_pfn, args->page_prot); + pud = pud_mkdevmap(pud); pud = pud_mkyoung(pud); set_pud_at(args->mm, vaddr, args->pudp, pud); flush_dcache_page(page);