Message ID | 20250317141700.3701581-7-kevin.brodsky@arm.com (mailing list archive) |
---|---|
State | New |
Headers | show
Return-Path: <owner-linux-mm@kvack.org> 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 64653C28B30 for <linux-mm@archiver.kernel.org>; Mon, 17 Mar 2025 14:22:02 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2066F280008; Mon, 17 Mar 2025 10:22:00 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 190BC280001; Mon, 17 Mar 2025 10:22:00 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 00929280008; Mon, 17 Mar 2025 10:21:59 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id CDC4C280001 for <linux-mm@kvack.org>; Mon, 17 Mar 2025 10:21:59 -0400 (EDT) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 61131AB77E for <linux-mm@kvack.org>; Mon, 17 Mar 2025 14:22:01 +0000 (UTC) X-FDA: 83231257242.27.0B89A68 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by imf28.hostedemail.com (Postfix) with ESMTP id 69629C0006 for <linux-mm@kvack.org>; Mon, 17 Mar 2025 14:21:59 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=arm.com; spf=pass (imf28.hostedemail.com: domain of kevin.brodsky@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=kevin.brodsky@arm.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1742221319; a=rsa-sha256; cv=none; b=ojTqtix6L1tQOSryvTr/K/JR/jZ0brP6WVVRDIiSna5VuSD9UGaB4ye/6P/UwUzWMDHkP2 vUEW+QflxFLXedC63Nf1C6EOlDmI2lUs7GBquUWzfWLUIO6l/RNSwZFoDHK0EJ/4PtI4+g yJBlGCN5lvjDtOIE9FQklo3iClrugoM= ARC-Authentication-Results: i=1; imf28.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=arm.com; spf=pass (imf28.hostedemail.com: domain of kevin.brodsky@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=kevin.brodsky@arm.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1742221319; 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:in-reply-to:references:references; bh=Fo5GoDaPm0gIjYVqCGzA2mr+USoIG153jiLEzNpCVDE=; b=63WRq6Hd7erlNCFqTqYK14c3/uI1f+ajMFxu7NoNA4lyuqNzmGCFPtoQsExY4FjEQZKh7t LN89dt8P7ShiZHmIBF4Wujl8MJ0FbMiEVSfsTu7PGLTXExYXVOp/9MBBazzCyeNrb84eq4 O7ER8UdhIS5AwGECA6TYcg3Gb7NpNQU= 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 24CC326BE; Mon, 17 Mar 2025 07:22:07 -0700 (PDT) Received: from e123572-lin.arm.com (e123572-lin.cambridge.arm.com [10.1.194.54]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id F102B3F63F; Mon, 17 Mar 2025 07:21:53 -0700 (PDT) From: Kevin Brodsky <kevin.brodsky@arm.com> To: linux-mm@kvack.org Cc: linux-kernel@vger.kernel.org, Kevin Brodsky <kevin.brodsky@arm.com>, Albert Ou <aou@eecs.berkeley.edu>, Andreas Larsson <andreas@gaisler.com>, Andrew Morton <akpm@linux-foundation.org>, Catalin Marinas <catalin.marinas@arm.com>, Dave Hansen <dave.hansen@linux.intel.com>, "David S. Miller" <davem@davemloft.net>, Geert Uytterhoeven <geert@linux-m68k.org>, Linus Walleij <linus.walleij@linaro.org>, Madhavan Srinivasan <maddy@linux.ibm.com>, Mark Rutland <mark.rutland@arm.com>, Matthew Wilcox <willy@infradead.org>, Michael Ellerman <mpe@ellerman.id.au>, "Mike Rapoport (IBM)" <rppt@kernel.org>, Palmer Dabbelt <palmer@dabbelt.com>, Paul Walmsley <paul.walmsley@sifive.com>, Peter Zijlstra <peterz@infradead.org>, Qi Zheng <zhengqi.arch@bytedance.com>, Ryan Roberts <ryan.roberts@arm.com>, Will Deacon <will@kernel.org>, Yang Shi <yang@os.amperecomputing.com>, linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-csky@vger.kernel.org, linux-m68k@lists.linux-m68k.org, linux-openrisc@vger.kernel.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org Subject: [PATCH 06/11] mm: Skip ptlock_init() for kernel PMDs Date: Mon, 17 Mar 2025 14:16:55 +0000 Message-ID: <20250317141700.3701581-7-kevin.brodsky@arm.com> X-Mailer: git-send-email 2.47.0 In-Reply-To: <20250317141700.3701581-1-kevin.brodsky@arm.com> References: <20250317141700.3701581-1-kevin.brodsky@arm.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam07 X-Rspam-User: X-Stat-Signature: sqw1utdcs8u4yqm7q6storg4z4n56qax X-Rspamd-Queue-Id: 69629C0006 X-HE-Tag: 1742221319-879489 X-HE-Meta: U2FsdGVkX18KCOw7BAM/808qJ1EaPR6rj1iumM6t3u2XJh9JrBy5tKzww1e/XCzmpVIFCjXLopIzpEH0GnaLbyOsCVheeKvL75+ZTsrDj1T5y7hbiDoZ27LmTepZg5WhkB5/FLmTTXY9/IZ2S92V7kAwEM0+4RrR1yxPdYcUidHBaSddcPk6oQQRGjhccdnxIv3RNAh94zH/f7VSPsqY3BDpLz7axGDsRfne9PgJwb424LOa2XAy9Mih75bNPILr28U5ItrMnI9B6B2mYzZxFhPkk9vyGZ6WyNZkLaeThaHCZt9x63Vnz+umlZWT0AUSHQm1vhNhnUwq3hGzpFUoOvTPysi8tmYTGEHfGJi0+QETcc78kyTH2nmtmFWKBZ0lhJDfYpVK9oDeq6GDdcIM5Z5mYNnrZPv/diz1yQNacF2XjlKFbA4BWYQaSFtAK7iW7pZ8WKqPisdnMB2Ioungs4HK4A1oFb5TDAAGPTtwjDx3V5ew5nFo62S0AgQ2KwF9JquT6WZkPPI04ePA+PjeuWJP8as28QvUo7rG3OHLC3OxavYm/enC5o0V8ScrY5zS2V25CtpABlJkbHSAaFNp558ZKlWVoFmVQVL7fD+Yxrb042aT65RsIQz6no072fXeDxxTEynq5YXzwA0qDHRJhpwYEbBcxds+JyOldy5ZuAIK21GtOp1VEYGXDPLg9iBwAtO/Nh1UWmb8r+J0E4KJ40gughlkvOwCBJBhnZ07Oy6Bo9uyShKujTVzqSyiXshD/Ex6XIUDD0AlSxEJbTInC9IoQT+DWD/rrFb306gGgGeBEPm2iyAOWoQFAKkIke/7uRLeRPqXbL8/Hzz4my2cN/qF7s7TDUgFh6qVEORwR2En+wtXLSe8Qt5nZtdH5Z9Vxpg0EwQkCw1jHwGLm5A6ZJLdqn1CJ2ol13SbpslwUwf/kGmR6cs7bP0hqlLjvZXd/0e573e7oN0MhJlFYFC +qm4fZ7J S7Y7e7OTNYJlwkQVMxZ1u/eV0xgqQ3XS25eZ9foCHNfkTU6+1vE8vwZmPUaVr+2R1VbTDG05fil4YEF6JSdNOioOwQXh5i4zbdHEoheGAu+1MAwAfM09ig6DR3VbjlCTIxILJv7FN4jvzAX62s14IymAI5umej15fYYvLbqZDbeVpVzqTXqUC3X8rOKZL8HLnNwOMF+sgmkkM70o= 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: <linux-mm.kvack.org> List-Subscribe: <mailto:majordomo@kvack.org> List-Unsubscribe: <mailto:majordomo@kvack.org> |
Series |
Always call constructor for kernel page tables
|
expand
|
diff --git a/include/linux/mm.h b/include/linux/mm.h index ee31ffd7ead2..4759da9cd633 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -3125,7 +3125,7 @@ static inline spinlock_t *pmd_lock(struct mm_struct *mm, pmd_t *pmd) static inline bool pagetable_pmd_ctor(struct mm_struct *mm, struct ptdesc *ptdesc) { - if (!pmd_ptlock_init(ptdesc)) + if (mm != &init_mm && !pmd_ptlock_init(ptdesc)) return false; ptdesc_pmd_pts_init(ptdesc); __pagetable_ctor(ptdesc);
Split page table locks are not used for pgtables associated to init_mm, at any level. pte_alloc_kernel() does not call ptlock_init() as a result. There is however no separate alloc/free functions for kernel PMDs, and pmd_ptlock_init() is called unconditionally. When ALLOC_SPLIT_PTLOCKS is true (e.g. 32-bit architectures or if CONFIG_PREEMPT_RT is selected), this results in unnecessary dynamic memory allocation every time a kernel PMD is allocated. Now that pagetable_pmd_ctor() is passed the associated mm, we can easily remove this overhead by skipping pmd_ptlock_init() if the pgtable is associated to init_mm. No special-casing is needed on the dtor path, as ptlock_free() is already called unconditionally for all levels. (ptlock_free() is a no-op unless a ptlock was allocated for the given PTP.) Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com> --- include/linux/mm.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)