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 BAAFFC3DA64 for ; Thu, 1 Aug 2024 11:01:30 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2A4366B007B; Thu, 1 Aug 2024 07:01:30 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 22D126B0082; Thu, 1 Aug 2024 07:01:30 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0CDEC6B0083; Thu, 1 Aug 2024 07:01:30 -0400 (EDT) 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 E189F6B007B for ; Thu, 1 Aug 2024 07:01:29 -0400 (EDT) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 530C480B3E for ; Thu, 1 Aug 2024 11:01:29 +0000 (UTC) X-FDA: 82403385498.22.3D16694 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by imf04.hostedemail.com (Postfix) with ESMTP id A486040028 for ; Thu, 1 Aug 2024 11:01:27 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=none; spf=pass (imf04.hostedemail.com: domain of Dave.Martin@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=Dave.Martin@arm.com; dmarc=pass (policy=none) header.from=arm.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1722510012; 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=tsRZdZjTI7yJDnLfipw85i+gL5lETb+dSWGzwOgUmtk=; b=nZ3dAoNOw+YRGz/+Ktnz/Pv2y3D6OvBFQpXX8fWYbXEMk1mJy+jNj9JiS9uIPxcfFdDRsP Y16cr50FJ5XQYGeaZ4ptUUE524U4btvgAQ6BLqfi6t+MpQa1R0kxHOjThxUBJ27OKX31yo cSIgeWJYYyS5BrWdl5h5y182AdKP3X8= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=none; spf=pass (imf04.hostedemail.com: domain of Dave.Martin@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=Dave.Martin@arm.com; dmarc=pass (policy=none) header.from=arm.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1722510012; a=rsa-sha256; cv=none; b=OEjMeXQunjoMInOpIHVBbyFuIY6Mbg+70rsQ9q+tDFq3RMpZCLjzEBT2j2i5+1uT2t7NSU DBhvzOL5RlyoJ17OnJ5zrMq6yEqInjyy7u8p7YeJn23weUq+Tkxz02dRxMQIAshiNfYRgr 9N6TNZPcO4UROZPpoc1SgeIy8qMwPIM= 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 570E215A1; Thu, 1 Aug 2024 04:01:52 -0700 (PDT) Received: from e133380.arm.com (e133380.arm.com [10.1.197.55]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id BCA383F5A1; Thu, 1 Aug 2024 04:01:23 -0700 (PDT) Date: Thu, 1 Aug 2024 12:01:18 +0100 From: Dave Martin To: Joey Gouly Cc: linux-arm-kernel@lists.infradead.org, akpm@linux-foundation.org, aneesh.kumar@kernel.org, aneesh.kumar@linux.ibm.com, bp@alien8.de, broonie@kernel.org, catalin.marinas@arm.com, christophe.leroy@csgroup.eu, dave.hansen@linux.intel.com, hpa@zytor.com, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linuxppc-dev@lists.ozlabs.org, maz@kernel.org, mingo@redhat.com, mpe@ellerman.id.au, naveen.n.rao@linux.ibm.com, npiggin@gmail.com, oliver.upton@linux.dev, shuah@kernel.org, szabolcs.nagy@arm.com, tglx@linutronix.de, will@kernel.org, x86@kernel.org, kvmarm@lists.linux.dev Subject: Re: [PATCH v4 13/29] arm64: convert protection key into vm_flags and pgprot values Message-ID: References: <20240503130147.1154804-1-joey.gouly@arm.com> <20240503130147.1154804-14-joey.gouly@arm.com> <20240801105502.GA841837@e124191.cambridge.arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240801105502.GA841837@e124191.cambridge.arm.com> X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: A486040028 X-Stat-Signature: sw7foznq3f9k1i5sdasyhete6fx8o3y3 X-Rspam-User: X-HE-Tag: 1722510087-234969 X-HE-Meta: U2FsdGVkX18K0Wv2n3aDRgRH1dRZU5cUPo3NnSpWKJF0YMMHWvbqXFzIhIwDsRV0yY3jO/wptnebKziTob4qfDfyM3JFIc6FQrqT5Zaarkm5373fs2nk3rsw7i0fWLJHHh/AG7KLXrTv1dZeQF0SRU3vOtVmvgiPhFhx1l454y+rRyfs2SrLBmNmTdCIkTva4g8ftrdlQeDoseDSUCKWIgOnwsYzxUGjg5vecnaXmp/bwdJi6cr6+ovb4ZggONQdSlYDrZSMgKeqvakYIK63wEmJj5DeQ0bqSHpPD1TPYzAR41KomM4HBUIkPPz9EG7u+ji4PgWTkfuACJXxpfVrfNy7gLvP9/4/2zGdXFKohicPytm4rW2O9QVlvHHm7ZkYRw4/79Oia21W/Hss9c99EwutR+DmSSwYPdt0PbD/x0a+u2HDKxp+AEWLrYVQJ+pRc2rpXEcr9BpbaMKKi85l4cgZUk6SO8PvlTtR2lO6KR479skkV3M+fXXcu6q9RWRyezhYZpVPG8xbUSlgLQpz+zWvSYHB8Pj7XBwi4CyWLjwkl5WK7cV286UZSC8J+M0P0lrrR/JG3KXImlslssiAaL+gKU+a3UcJtFFI3JraLtAlTZJEWDeAookairNvBrEsPn+p50R4xQEFh1DHxeWmR1oQvRO6yokNPRKM6Ah5zdv5W+7Lh6R2e1uFDzIwNFIlssS/J3HxVRa5lbIbr+7ZUcfO/GcMXuea8b9QD1loPI4ov1JsKsXYHWpXqM1YGJYPm1eONipAHqx+YbKBk1lEQJYcbsRXI87erQ8Vb1hZTYdUVSutTK/HVuIk2MMGBESAcuKMPTxf8CfsdCrdBwgvKrREJ+jYm9atMmugSIukTN9juTNQs69xm4/AJo62dxOc4ayKpFwl6Ef1uXcX2QyExmJ69APMTcDVyWwWXY3xgqMYBNL48TCLIjo/h9IC1AjAR+IBO9YWew2bH6UAJ7y gUdPdRnz PIn+9ebwmWDbTPQo5D5nz3b2YBGGhr/bbgbJrQ87h7ESmFccGnxvR0ZlxEgi9nEVz3nCdfAtk9YAw4izGHwJ7Sg4PQ/hqT1wKNlfhbUjqQRVNeac+8wxog278vojbIcg2HxYxbLongFCluzIP3O6Jt36J/3dFDf6+1NgNtI/ZcLot7EB693KY1Kq7g5dFC88QGpM1e8mvJgiBol6GOpSS7Cn/tEm8/xXj5K94d9photBEoNy0+lVRao9+JGTKxNzmnvIPH5wEUraGiZ8HIPLQdcqaPNVj4EeHVbDAgxHW9+u0S6OJSqgrxVSn3A== 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 Thu, Aug 01, 2024 at 11:55:02AM +0100, Joey Gouly wrote: > On Thu, Jul 25, 2024 at 04:49:50PM +0100, Dave Martin wrote: > > On Fri, May 03, 2024 at 02:01:31PM +0100, Joey Gouly wrote: > > > Modify arch_calc_vm_prot_bits() and vm_get_page_prot() such that the pkey > > > value is set in the vm_flags and then into the pgprot value. > > > > > > Signed-off-by: Joey Gouly > > > Cc: Catalin Marinas > > > Cc: Will Deacon > > > --- > > > arch/arm64/include/asm/mman.h | 8 +++++++- > > > arch/arm64/mm/mmap.c | 9 +++++++++ > > > 2 files changed, 16 insertions(+), 1 deletion(-) > > > > > > diff --git a/arch/arm64/include/asm/mman.h b/arch/arm64/include/asm/mman.h > > > index 5966ee4a6154..ecb2d18dc4d7 100644 > > > --- a/arch/arm64/include/asm/mman.h > > > +++ b/arch/arm64/include/asm/mman.h > > > @@ -7,7 +7,7 @@ > > > #include > > > > > > static inline unsigned long arch_calc_vm_prot_bits(unsigned long prot, > > > - unsigned long pkey __always_unused) > > > + unsigned long pkey) > > > { > > > unsigned long ret = 0; > > > > > > @@ -17,6 +17,12 @@ static inline unsigned long arch_calc_vm_prot_bits(unsigned long prot, > > > if (system_supports_mte() && (prot & PROT_MTE)) > > > ret |= VM_MTE; > > > > > > +#if defined(CONFIG_ARCH_HAS_PKEYS) > > > + ret |= pkey & 0x1 ? VM_PKEY_BIT0 : 0; > > > + ret |= pkey & 0x2 ? VM_PKEY_BIT1 : 0; > > > + ret |= pkey & 0x4 ? VM_PKEY_BIT2 : 0; > > > > Out of interest, is this as bad as it looks or does the compiler turn > > it into a shift and mask? > > Yeah, (gcc 13.2) produces good code here (this is do_mprotect_pkey after removing a lot of branching): > > and w0, w0, #0x7 > orr x1, x1, x0, lsl #32 Neat, good ol' gcc! Cheers ---Dave