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 69DACCD342A for ; Tue, 3 Sep 2024 15:29:49 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D26E18D019C; Tue, 3 Sep 2024 11:29:48 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id CD73C8D016E; Tue, 3 Sep 2024 11:29:48 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B9FDD8D019C; Tue, 3 Sep 2024 11:29:48 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 9ECFB8D016E for ; Tue, 3 Sep 2024 11:29:48 -0400 (EDT) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 4A2C3805A3 for ; Tue, 3 Sep 2024 15:29:48 +0000 (UTC) X-FDA: 82523812056.14.F503B37 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by imf19.hostedemail.com (Postfix) with ESMTP id 8ECE11A0014 for ; Tue, 3 Sep 2024 15:29:46 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=arm.com; spf=pass (imf19.hostedemail.com: domain of joey.gouly@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=joey.gouly@arm.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1725377281; 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=Z3E9Vn4TKoaL9shXIlIYfEwTsVJ0llEy4ksrdeCUm6o=; b=gs+7Uvp+sDeAIvblZ1HW63OeBEicmKoMbUv8OeeUON7OCidpikkY2+/IlCIPQmUoq1cpMA m8fqm5k0IY4sEl2OEoMduZxW8MOvir+UVS/UOZn9PKUKzlrvn5BJXa1E/xyQ7jy0p+CbZA gPpt4UgS5vfr0b1QNUB54ys2/k1Fr/I= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1725377281; a=rsa-sha256; cv=none; b=ArNV1msmj8tdHuNocHqfXUd+ujx/Q7pcyrnFLV0ZGdUD/tGA/+riK7bIJOD3/fUvgKM2gO 5SRsXyeNrrrHB8+M95VlAmeGv8ijmW6sQZdRhmQvaaLF+LFHA/V1p7jul4jqhApF+CD1qu TaCOXD4zq10LQJsQoBLofYDXQQPUZp8= ARC-Authentication-Results: i=1; imf19.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=arm.com; spf=pass (imf19.hostedemail.com: domain of joey.gouly@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=joey.gouly@arm.com 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 46809FEC; Tue, 3 Sep 2024 08:30:12 -0700 (PDT) Received: from e124191.cambridge.arm.com (e124191.cambridge.arm.com [10.1.197.45]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 841EB3F66E; Tue, 3 Sep 2024 08:29:42 -0700 (PDT) Date: Tue, 3 Sep 2024 16:29:37 +0100 From: Joey Gouly To: Mark Brown Cc: linux-arm-kernel@lists.infradead.org, nd@arm.com, akpm@linux-foundation.org, aneesh.kumar@kernel.org, aneesh.kumar@linux.ibm.com, anshuman.khandual@arm.com, bp@alien8.de, 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, skhan@linuxfoundation.org, szabolcs.nagy@arm.com, tglx@linutronix.de, will@kernel.org, x86@kernel.org, kvmarm@lists.linux.dev, linux-kselftest@vger.kernel.org Subject: Re: [PATCH v5 16/30] arm64: handle PKEY/POE faults Message-ID: <20240903152937.GA3768522@e124191.cambridge.arm.com> References: <20240822151113.1479789-1-joey.gouly@arm.com> <20240822151113.1479789-17-joey.gouly@arm.com> <40600b75-68eb-421a-a122-256bd20afb89@sirena.org.uk> <20240903144823.GA3669886@e124191.cambridge.arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240903144823.GA3669886@e124191.cambridge.arm.com> X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 8ECE11A0014 X-Stat-Signature: san79cdqdwwfyun3ks5mag1m6jhy6tkp X-Rspam-User: X-HE-Tag: 1725377386-176652 X-HE-Meta: U2FsdGVkX19VMfjF4LUUph/Xobd1LlNT79eLRsZcE++8pSaaawA0oQ6RGASMDKt+gslO0LgblYUhZwwv1VB45WyLSZG1axUSuupGe1Vnvc7gQGUrdFSpw2P8xaMI/6cBE0/zVcu5wJBYYOO+Y83j+8Ibd73UOm5iZRzh+VMlw+7oRlm/IEUAiDt0c6y/p/Y7C3i0Yr4y2AB7J0hlHQ1Bgz0wLJBKNIIyFhGNbpOLM6ZQcmhnn8sF/bt0Ty5wNfY94u+WPvVEz3CebxCJJafEmK3GvlMMaWONP9cQAkOuhFJ7IaHO4EJjZv55qOOHNyNK68csJOPYq+AxHkVKduMqWDxfDC3TN9hWgLLn2ctJNtnWht0Bcjk0Op65xPvGDybk6bbujjh8ye9b6HAwTQ/yZ14nGUEjebxyiccNQTHaYZprVSF8EAy2oE6r6m+O7/cObLN597pWAy3gZIiaXEXyJv7mlg6DNingzFVQ6JGGg0z7vKBQaAF1NAQUt0Jp+HwP9/5YMgauXUvvAxkvjOpRs5/sQ4MNvGhJB40ioEpCqLhfYa5qF8rZNyZuN/h+n+iCF5M9zqfZiEuvyODXmr+gkaCdYBBjmD2EwVDc49h5WnMd5mRbZggb6wvVp6gOrcWe6DsXQJbZvEJOhKudNzS/TFMKkLBHQvzs5ywNrqPfx0KMOzhaQpbqTGg2qml6KHhJRjb5Hiqujyup7cdhUs8pCzd6f2w5JMafpnOIv6yA8/gephA1rdTW2aGdpxLkdOCuqJVS/+rhlLU6dTLBTHe08P82FMyULDpMNBshjrHgSV8DP8+HVWEbBFdE8BawpqsfF5E6PRl4ApmmwN7eWkQfDnbEqCbTJwXsoCp0Z0ig2Ovps2QcBiPfVj8T/GWaGSsKPUkbFnLT03nM5+xfScVfKEXorDbHc8nSFMiXoNj12caMhYOk3Nijfj7ikhErRFEtBhrCl0Wz8ZF+K66pb3s jtzChPsU rXu+FqlzeNxEZv07ovFctIMBWpLJ4VWqTVfZt0tCPtQiWCn5/dEdAVceyrHUu2d0+aAcRj9ZUHZenwxZxs7pyPU4foYXozG5TJE3ZZxVCuqgLP79FRTwo3B1F9bonHTnIVuP+jpP24qNUY/zJCgt13OzWabSOBfy9zjKKE8dAIuQ7srGfrzxrclpoCbVHxHrag6bwuv3xnMK94E4= 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 Tue, Sep 03, 2024 at 03:50:46PM +0100, Joey Gouly wrote: > On Thu, Aug 29, 2024 at 06:55:07PM +0100, Mark Brown wrote: > > On Thu, Aug 22, 2024 at 04:10:59PM +0100, Joey Gouly wrote: > > > > > +static bool fault_from_pkey(unsigned long esr, struct vm_area_struct *vma, > > > + unsigned int mm_flags) > > > +{ > > > + unsigned long iss2 = ESR_ELx_ISS2(esr); > > > + > > > + if (!system_supports_poe()) > > > + return false; > > > + > > > + if (iss2 & ESR_ELx_Overlay) > > > + return true; > > > > Does this need an is_data_abort() && is_instruction_abort() check? > > Overlay doesn't appear to be defined for all exception types and it > > wasn't clear enough to me that the callers have done this check. > > The only callers are in do_page_fault(), which should only be data or > instruction aborts. I talked with Catalin and he said it's fine to not check > again here. > > I can add a permissions check though: > > commit 033270f5a9462e998b4dee11fc91b43ac7929756 > Author: Joey Gouly > Date: Tue Sep 3 15:45:59 2024 +0100 > > fixup! arm64: handle PKEY/POE faults > > diff --git a/arch/arm64/mm/fault.c b/arch/arm64/mm/fault.c > index a68055150950..f651553a8ab8 100644 > --- a/arch/arm64/mm/fault.c > +++ b/arch/arm64/mm/fault.c > @@ -495,6 +495,9 @@ static bool fault_from_pkey(unsigned long esr, struct vm_area_struct *vma, > if (!system_supports_poe()) > return false; > > + if (!esr_fsc_is_permission_fault(esr)) > + return false; > + > if (iss2 & ESR_ELx_Overlay) > return true; > > > > Since the ESR_EL1 documentation says: > If a memory access generates a Data Abort for a Permission fault, then this field holds information > about the fault. > Sorry, I was a bit too eager with that patch. The previous patch was bailing out before the vma-backed checks could take place. It should be: commit 7b67b149f2f492e907b27521c95639f4ea208221 (HEAD -> permission_overlay_v6) Author: Joey Gouly Date: Tue Sep 3 15:45:59 2024 +0100 fixup! arm64: handle PKEY/POE faults diff --git a/arch/arm64/mm/fault.c b/arch/arm64/mm/fault.c index a68055150950..8b281cf308b3 100644 --- a/arch/arm64/mm/fault.c +++ b/arch/arm64/mm/fault.c @@ -495,7 +495,7 @@ static bool fault_from_pkey(unsigned long esr, struct vm_area_struct *vma, if (!system_supports_poe()) return false; - if (iss2 & ESR_ELx_Overlay) + if (esr_fsc_is_permission_fault(esr) && (iss2 & ESR_ELx_Overlay)) return true; return !arch_vma_access_permitted(vma,