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 43DFDCD343D for ; Tue, 3 Sep 2024 14:50:59 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8EA0C8D018C; Tue, 3 Sep 2024 10:50:58 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 84A488D018A; Tue, 3 Sep 2024 10:50:58 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6EC038D018C; Tue, 3 Sep 2024 10:50:58 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 4C2228D018A for ; Tue, 3 Sep 2024 10:50:58 -0400 (EDT) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id F2E5CC0437 for ; Tue, 3 Sep 2024 14:50:57 +0000 (UTC) X-FDA: 82523714154.09.62DB315 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by imf19.hostedemail.com (Postfix) with ESMTP id C19051A001F for ; Tue, 3 Sep 2024 14:50:55 +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=1725374950; 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=bDqnEweAQ91ZaX2BP7Rb9KWNWhs+lCN9D8yckPy3xkQ=; b=nwg63gut282QGPyl+w8fMa89ZO/ZPEOz5dPw9kGOIFNFgpQbMfxeD5hZ590mDZVFiuTx1V fdPBOaK1rSWkP3uOWtjoXJWVcpKMvjodJ0zwdmoxfaDuAqazDq088YyU4v+suksatK2h8m V85V65aymhfO3gmZmaQKVTOpguwNsr8= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1725374950; a=rsa-sha256; cv=none; b=cSC6WMlj/Dcih9JaIat5DqpDxr//dzoeLh3foJP6NRuz0XrcnJONoS7cK/Mhzx0e9Bkd4B Xw0zu+Xf6AnPVOIY4RYFOy7H7+6E/VkmxCwbrNz4DenlYDPpPZXGtUhfAyX3tZU+SSy9k1 MJHf1Uw6PqHvd1tUTqgZOK+bY2s/etY= 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 16944FEC; Tue, 3 Sep 2024 07:51:21 -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 54B823F66E; Tue, 3 Sep 2024 07:50:51 -0700 (PDT) Date: Tue, 3 Sep 2024 15:50:46 +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: <20240903144823.GA3669886@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> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <40600b75-68eb-421a-a122-256bd20afb89@sirena.org.uk> X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: C19051A001F X-Stat-Signature: dik9ix3sce3ipqurdi9huajfsnuuwucz X-Rspam-User: X-HE-Tag: 1725375055-12271 X-HE-Meta: U2FsdGVkX1+CDXRvul5Tfe8BsVA+p4h9rDka05lUQaC4lYwwAyBE+y0HJk0+XwH6ddM0eEBITXfhdfyIiNSimC36IUBpXGFjwsyc1gVTbriqR2mttW7zP2aCh8K/r/DK3Soznxikx6IOyWeFhvewfmNPVJQ9PgYkZpd5iZM8wbNfChruifccxsU2UT8hvc6qOLgX1Sv4dU2rMbwyxEOD1bfYvAby9o8LxCdPA589Q8YvRKY/mmUyEEV5TEUsBAHwpiTZOKQbktNYMCHNp+s+FDfNhC6YVadMVPcJrDKyCSgvsBoc5nQuvaaWQz2LkXb8WibxBqgJdahtI+k4ootp9wIc3HmLX+95dZMw34FeLZAWrQ7vsk8i2lguYfVJcASAnD3DZcHEE38av9qP59ELzrKzG5t2kuchMM/lrEFHN/eWIk+JvJ1MWoXcCfMoeSDQyGx0TrZVhSl9bdbcHtEVwzdwgD+fURFqjdqCipfuRh5/fCWURYrxWYcxuJG/c1XP/kVCl/AfTWUUCeUo6MDS2z7NZ4tccLnISlYY0xkViRoro/s1uOUBvj3rMCxUO9eavrPcmfQXBpC3TMJpRQIlVDBCDTguEMdsWbq9ZnMWkdYvDCbIteWfcZqPhDCzH69o7wBMoN9wtzcTIBflJVZa5UKJ0rGt1xFgQUpv6dJHuOYrG60vrOY1H3XnjIBwAQAJQk5hHYQ5fyWHykkLE1oijz9tKNUmSmLEF+19lPaK3Zr5WtevTM/AfkweT8xGswi1EDjwEpzeUTg2Lsuh+KrOkcufGMav58rMGrSvkjXKYnETIJfHRVzHm9624dBpRMlWXy+E7D0AxrztF09IbNUTvvBDwoiboeWZeLxwDAB2elAtcP1mBZN6zLOVapNYRq02YuB6x97vv1aYdXpDDNMCAVKwZlelJ3URALj4s9gg1wOwlivbSGD3JK+cWzHfgTp/2I910sMS8XMWQreM1sx mv103PMx 2C4AyTX0fwuGVyIYZUQbtJtJOAq1a9fol+JEe87QYWH274zUWH9zT3qn7P6oVepEQIlybF0WyNKcAaDIPdBotuCMur+HTL/rMCW1T5XMTHmTgV25F1hbbIj3lXjQ/oCYmCVchVenuKca4yH09O1URpAf6Fnsp8WxNOKTCc1gBn9Ls/bY93RO0etUa/OtjcKGp0CR6W+xPFz3C22M= 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 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. Thanks, Joey