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 01985C3DA59 for ; Tue, 16 Jul 2024 09:06:09 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 412576B0083; Tue, 16 Jul 2024 05:06:09 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 3C2096B0088; Tue, 16 Jul 2024 05:06:09 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2B0546B0089; Tue, 16 Jul 2024 05:06:09 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 0CF796B0083 for ; Tue, 16 Jul 2024 05:06:09 -0400 (EDT) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 7EE53140436 for ; Tue, 16 Jul 2024 09:06:08 +0000 (UTC) X-FDA: 82345034016.02.4729D48 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by imf13.hostedemail.com (Postfix) with ESMTP id 8A51020021 for ; Tue, 16 Jul 2024 09:06:06 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=none; spf=pass (imf13.hostedemail.com: domain of anshuman.khandual@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=anshuman.khandual@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=1721120748; 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; bh=XfC+LwVRa/tLYkKLcEEei8VFxdOCaEycHPZcfC5YtJY=; b=DC1Y6Qr2V53+wqrBGZ9wgiiPpv4oLp7LM9qKhrubRiB4bl5igtIqU0TLCnTDkDF8+NWiPU t6hXLU32vmgHoJF9yDaqPRYi4WbamwtQxHsMwWmNyEBe9MqCLOUy5JLQFa3UWp4HvfCwg6 2qzdwQ1hVhStzvYdwyKdm8+4AxUDpF4= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=none; spf=pass (imf13.hostedemail.com: domain of anshuman.khandual@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=anshuman.khandual@arm.com; dmarc=pass (policy=none) header.from=arm.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1721120748; a=rsa-sha256; cv=none; b=MadfpusFWDSJv3EF4P7NaYu8C7Q4TGq7nnPzhAaYPHCuWaReEMPpo5rJksy4LZ03ES2u5J Ussjql/BjHSnsk4sjnORA4Q8hgpo9/cJ9JErkjFaTU7ITNb9hjZocHq86hqvvQm2Uu+biL AWrhJ5XztYu/s1E7xDNn1jUGK6vv/+k= 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 CA2511063; Tue, 16 Jul 2024 02:06:30 -0700 (PDT) Received: from [10.163.52.225] (unknown [10.163.52.225]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 83B843F762; Tue, 16 Jul 2024 02:05:53 -0700 (PDT) Message-ID: <0f87e51e-f790-4302-896f-9b9a74ed7495@arm.com> Date: Tue, 16 Jul 2024 14:35:48 +0530 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v4 13/29] arm64: convert protection key into vm_flags and pgprot values To: Joey Gouly , linux-arm-kernel@lists.infradead.org Cc: 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 References: <20240503130147.1154804-1-joey.gouly@arm.com> <20240503130147.1154804-14-joey.gouly@arm.com> Content-Language: en-US From: Anshuman Khandual In-Reply-To: <20240503130147.1154804-14-joey.gouly@arm.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Rspamd-Server: rspam03 X-Rspam-User: X-Rspamd-Queue-Id: 8A51020021 X-Stat-Signature: mz1o9kkfespwe1z3m39i8yus4iwjdz83 X-HE-Tag: 1721120766-50166 X-HE-Meta: U2FsdGVkX1+Xh6vklbLrtZG2OWqw8j++AAr6wQA8Ju5JYQzY3MTpi13p+QYAW+NK+kC4U+IgdVJ1oVe9Z754FpJuvaLSPs/9Rz/UDP6jCjyyHyBEUSVRY1NCKhlCDCJ5q5bPxgQkRGmBKSSx1p2abMZTBjLER66OQgcrmKoqQ9bPUSxQRIMJ90rS7sdM8E+NUfwMoEjj2r8U2wuAhOAvlQ4irS9q8n+xQSNuRmAU5ZluNb0d+lP1I5yZFmKgoo9RXuM/EpTHk8bxN4wBUPXzxquCx0/ZxfTAjfzb0Ru2WYaI8pzg2q0jM4xJ06P6NpVxtHEQiqbFOyhpb17YQGjr3KI91LXa93RTMJRZMblKsr/c2sHfFuSBqY49J4Byofn8jxajbu5FrIHG2V5DXX0TbNTbvCEcGbib1/vyGfJaMmpdnkl5en4GRQYkKYrvP3ED+6VmIJNYKDB5BiKKg+re8tfPUKjZNzcIaxN5C6jAqNSrKAhj4C8mHgHsY4vV8f1rrV9rXBTKNXE7Xpttcf7VgfxrNDrQjt+hwETsMF1+9wzc7NLNX5yp81VJODDStm9gcFXkDzuJ4MG9eVHPPbaA2XK6if/09wZXsDpk2Ha69nifWtieadhxCHttQSJQBo+l3cBPQ8kwLvMXcWCRcmIOtB9AUz49rCjfZE28rnXVnM9N9bLhWe4jcoEEAsAHxXeKC7z5O5YNTISbXgIqVCW+roGU6uDQt3Q+0k4dpNb0N+LsoyAUXSsvja+wGeT0dTHgpfBuNNabKkyns8SJ8MkHkx/ZDgl3s/ra0zoawCTITCFf+uW7sqDk9Je9n0jLegj1REQzHdwtZrRTeN7o57u/V6BH4JP2hNHSGT9iyoveOk+O6fBkRdzj9MrLYZj/6Iljy088b4xNAcFcHceiILAcmNdRmc6NWDY49h6ZF5tVpjMhLMqHm0CYSoCqvQeYuMDr6RSvwGb7vJxl3PBFPht 0BxUP/f1 Pg3L6J6iOMkexIcr8Fo9g+PB0ivfoZPCXROJ6jTeX/9T0QlZvNxvU8tocJwgt1hp5zV4gHVEZHMMinPJIZGPlUiwDXgueU29oKfnoPzA2ML3QxW63TxT6K6zzjfLkgtqy3m2TiWHlnPP4GC2XbZGaT8E1cBTi9usNklQYfaq1bsXkvZOu1Er1mq2whnqN3b9jOdHApji41MAbHFW3XZ7LtDRC9ePK+QV+XnJVREv7bQaMP+NB2jCQw7QWjCyZYIMYFjA65IyEWQxxVzuc5yaEBvYSGc0Q+Gz0o1/kmpjKtdkaggbf5yLolWrl3w== 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 5/3/24 18:31, 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; 0x1, 0x2, 0x4 here are standard bit positions for their corresponding VM_KEY_XXX based protection values ? Although this is similar to what x86 is doing currently, hence just trying to understand if these bit positions here are related to the user visible ABI, which should be standardized ? Agree with previous comments about the need for system_supports_poe() based additional check for the above code block. > +#endif > + > return ret; > } > #define arch_calc_vm_prot_bits(prot, pkey) arch_calc_vm_prot_bits(prot, pkey) > diff --git a/arch/arm64/mm/mmap.c b/arch/arm64/mm/mmap.c > index 642bdf908b22..86eda6bc7893 100644 > --- a/arch/arm64/mm/mmap.c > +++ b/arch/arm64/mm/mmap.c > @@ -102,6 +102,15 @@ pgprot_t vm_get_page_prot(unsigned long vm_flags) > if (vm_flags & VM_MTE) > prot |= PTE_ATTRINDX(MT_NORMAL_TAGGED); > > +#ifdef CONFIG_ARCH_HAS_PKEYS > + if (vm_flags & VM_PKEY_BIT0) > + prot |= PTE_PO_IDX_0; > + if (vm_flags & VM_PKEY_BIT1) > + prot |= PTE_PO_IDX_1; > + if (vm_flags & VM_PKEY_BIT2) > + prot |= PTE_PO_IDX_2; > +#endif > + > return __pgprot(prot); > } > EXPORT_SYMBOL(vm_get_page_prot);