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 E102FC47422 for ; Mon, 29 Jan 2024 06:27:05 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 582B26B0078; Mon, 29 Jan 2024 01:27:05 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 533426B007D; Mon, 29 Jan 2024 01:27:05 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 421E56B007E; Mon, 29 Jan 2024 01:27:05 -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 3412F6B0078 for ; Mon, 29 Jan 2024 01:27:05 -0500 (EST) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id D47921C122C for ; Mon, 29 Jan 2024 06:27:04 +0000 (UTC) X-FDA: 81731365968.15.8EE92EB Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55]) by imf28.hostedemail.com (Postfix) with ESMTP id 73E57C000B for ; Mon, 29 Jan 2024 06:27:02 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=FKTiWUxr; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf28.hostedemail.com: domain of aneesh.kumar@kernel.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=aneesh.kumar@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1706509623; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=JRuVu+l/JZuMLeSNgUcZfcJ/zYHcxYC6Wvz3haK+smg=; b=0SplQ8h80cHyOxfdogNquQV5PteaFMSP/as/WWXeQZTPrQo/3JRZs4l7A4GxPgFdWllbiz 3doe/1ZN6QiX7E2IFyGoa9dKI4N05MvHCr98sCgScYjCksTBG2aOgTPB/d/YkhDeIyFLmV J+A0tYIH5JON5zayGqpXLdUCWP7e8lo= ARC-Authentication-Results: i=1; imf28.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=FKTiWUxr; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf28.hostedemail.com: domain of aneesh.kumar@kernel.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=aneesh.kumar@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1706509623; a=rsa-sha256; cv=none; b=Sz5u4rFWAPgsQV4kHDPqXyvMmzde6q317FW0+ExC4Qk30p5iB/J6nLP54H39P5Dvp9B4ZK OHusG3xBtKBRBPQ43i93/QrLwyJRpLuZBFadTYbeEFv+GVBrWtUB+bNueqZC2TD/YCATJj qUQtGbj41A1xIAHJzKgsar0K48Q6LKo= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sin.source.kernel.org (Postfix) with ESMTP id DF545CE0FA7; Mon, 29 Jan 2024 06:26:58 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6125DC433C7; Mon, 29 Jan 2024 06:26:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1706509615; bh=ozH9tUKz+Ib/lG38+cYJ5t0IlrhQYRHwhVjs+83kvFk=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=FKTiWUxrb7cFzx2xDm6e3IzeVPaq5sNNy6AMJU7zMTl8d9pQodtlZGlm0+YzLT30x w2C28C85p/J0bMimYFQG8ggI6bJDczw3OUCepptA1R7inKsJE5/S4r7FebEyfoTys4 cVEnjCc20pcWmhq3Ev0x1OG4mSnyZNip0Hv77m2xxdRbMyiN3kslrFGe4cOA6LXhAM jCybeoSeJpUVB5DQGWuxkNMDfx9C5eRQrGo9IA8AcVQPyz2Rk4PyuHUtnUoUbTC2NK yFRW0AO/ZfTYtTc2zXMeg9MCCcV81dqaFOQR0ZOr5g5bq4BENSR2ZQNIZShjH4YSB5 gExtduADKB/4A== Message-ID: <504f70be-deca-4f7f-b28c-d1ec2cf5a348@kernel.org> Date: Mon, 29 Jan 2024 11:56:49 +0530 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] mm/debug_vm_pgtable: Fix BUG_ON with pud advanced test To: Anshuman Khandual , linux-mm@kvack.org, akpm@linux-foundation.org Cc: mpe@ellerman.id.au, linuxppc-dev@lists.ozlabs.org References: <20240129060022.68044-1-aneesh.kumar@kernel.org> <1b3c1513-826d-4908-93c3-212a6f1b2d74@arm.com> Content-Language: en-US From: "Aneesh Kumar K.V" In-Reply-To: <1b3c1513-826d-4908-93c3-212a6f1b2d74@arm.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 73E57C000B X-Stat-Signature: rbcfqy1943rqj3mync4azmyr15te5nxf X-HE-Tag: 1706509622-219836 X-HE-Meta: U2FsdGVkX19tDSTwhEpn9cemxVAiaZMu6QHhOPU4601MhAVPQqfSROBpM/iAjXOx9Zeq50i3uQPAz2HcR44XSFmb5LpuGdndcyHnTL0b0Dt24WRhX94MXRLoQlEdvFRR6IK3Fyw4QejOc5x2s1XH/uBDR84mDztzkw318xZVa0k66CRZv5/ESHbYdr7SGvJcW5CVsoE4EKgPyD7CvLduy/jbYj1uBz4Sa6ekB4w0QtUci+l3OOLZsIHBfmhz+kqcIzIqsgBzgM1s4vQkdZj7qiUtXHLdN8Wnr5zNpGHiSQtGdP1w1Mqn0TcbyerWNOZvsomgajEctG1bMKa29oxsw6+Xh4RDOABmlrPLdy7Kiu4Az+EZ+HrFA39Hk0DFbxcSAhfX1+vJDL0upq/r4Y79UIKOApESR2gymi5iNb3DFyW05g8u+Ffd9iwWISRm3tB9mhr37Cyl1NGMoHw2bK6p/GxF4I8Powy1Y21kumtpmOx56LeAhXEbokLdg5PVjRG+NRfJptE16Duvm1GFUYQc+XAxPLrkvtXz3yUbvBZkK7svnja9gv54tT7h0xHsRVigAr1fN9ivQdwpiDsd6Yl1CDIxdq1hCJBjmODkOo8HY0L4aAEMk5c2N9FiLsQmP0CqMZBa9bEg1zdXw7Xz9B/4+FYvlLwdniPlmG0Eph0wMxNaweJpEnI03nCfJWCnJu/e6djevulPnNNvRLH1SH4nD2AeUUp9zOgKpSifo03wKZOpPrOy5DYSWSbweM+sMzak6LLKVINDyQvZMZWeX6UO5zDvDHvUPBOkLEBokcFE1Iil/JbMb/xXwqfoHfxAeqrjc+SbrNAsbPlRFlmSXsAQvvw2kjIOABclcryZq6a69uXk9Jdc+3StGmbv88m9mSmjxXpCPFHAlZZGmeIXpNYVx4i9Tdp9leeHwLreJvKXpA9fFdUKTocPpShjxLnq9kehBxXHq4yik/+V4W80Kj8 mwYl28fw jWfF7giVvMOoBVH7X07M3ECjhcj48Up9afCkqcB1yHzQGCtJpUXNtrYHSayHn9yx3ksRKOm0dsjvjFE2EOLJnrb33mpFOY8jK04voK5TPX///9lLbPe3jScTT0cKUVLVsXe8KQXLI+7X6kmqu4piBi+DVsmtSCN085SwS0pts1ixIhS5mZc3D3dtdlODgnHrLFG4S9oCDzoxgAK8OAzc5w3YA282siqDuv/LOeRRdsqtBZ4+A6gtaBKYdmdxhVNTLalnEpVxj11Sx+SwpzhjGIcPna0yKjQr8HIHYNQ6WncVOg4CAm3MG3aJ5IEEb75IbIywIBD6aWeAYcDE= 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 1/29/24 11:52 AM, Anshuman Khandual wrote: > > > On 1/29/24 11:30, Aneesh Kumar K.V (IBM) wrote: >> 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. >> + */ > Do you see this behaviour to be changed in powerpc anytime soon ? Otherwise > these pud_mkdevmap() based work arounds, might be required to stick around > for longer just to prevent powerpc specific triggers. Given PUD transparent > huge pages i.e HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD are just supported on x86 > and powerpc platforms, could not this problem be solved in a more uniform > manner. > IIUC pud level transparent hugepages are only supported with devmap entries even on x86. We don't do anonymous pud hugepage. >> + 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); -aneesh