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 30FBCC3DA49 for ; Tue, 16 Jul 2024 10:36:16 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8247B6B0085; Tue, 16 Jul 2024 06:36:16 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7D48C6B0088; Tue, 16 Jul 2024 06:36:16 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 69B876B0089; Tue, 16 Jul 2024 06:36:16 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 4B98E6B0085 for ; Tue, 16 Jul 2024 06:36:16 -0400 (EDT) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id B92921C0E67 for ; Tue, 16 Jul 2024 10:36:15 +0000 (UTC) X-FDA: 82345261110.29.8E45AE9 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by imf10.hostedemail.com (Postfix) with ESMTP id D8215C0018 for ; Tue, 16 Jul 2024 10:36:13 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=none; spf=pass (imf10.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=1721126123; 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=Qt3jAdMkpbmp4ZhTpcRGh/J4HlCxSczO911LMNp4bf0=; b=YYyDH2gRsJsNWNuTJWLOFpqwFvGDgJ1pLqYpey+dTN7BeuzrPeeCPw5gTMKLdkJvvrnY3B 13gOaBrIAsqSkK75rwrBvO7RELKO6CspBWcI7EtCw+s2BZn/OCzvLa/4vfJPzSKQv0BiLl tIKCg7a23d9WQPpV3Wd/OldDf6hwiE8= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=none; spf=pass (imf10.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=1721126123; a=rsa-sha256; cv=none; b=YXrKwf2oQlqCNCYCoqnr5uCUVfAtTBZiIRrWelKOTxmNKFs4fDto6t2aE9LNnWIbnbeCyq /05tcbbhrmwnH+F90VkQHmRhj9QubIYDPfMaAwrKX+y0vEjxl3bnrJlQ1SlZfgYPc0DeHu nnuo88PatZES5Oz7G1ZW2tMb3hwBm1c= 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 217271063; Tue, 16 Jul 2024 03:36:38 -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 58F713F762; Tue, 16 Jul 2024 03:36:00 -0700 (PDT) Message-ID: <30ee6b2d-f66b-45c5-9c18-2b6ddaafda33@arm.com> Date: Tue, 16 Jul 2024 16:05:56 +0530 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v4 21/29] arm64/ptrace: add support for FEAT_POE 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-22-joey.gouly@arm.com> Content-Language: en-US From: Anshuman Khandual In-Reply-To: <20240503130147.1154804-22-joey.gouly@arm.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: D8215C0018 X-Stat-Signature: jaoeqmcc3fgc771bd7rcwxw5su3atr61 X-Rspam-User: X-HE-Tag: 1721126173-20124 X-HE-Meta: U2FsdGVkX1/S+2FOqZ42eS41QKuaSQrzV2ZWF3EK95gtzwRm7WTx67YVny4Vz0J7bWwvlvgnsDiIfdwql7DWpletnBU06oaqqH7qUwnt/0vShpabef6OZq4+5STYyl7hlEU0eFk4jBkXVj83des4AFavnO9PbFXqj1Sg4j+xQLivDbAsw7KYLBiXE/La2ixoD5hfk3zP4FK+wVT7yIAU4fOuaah/uRyr8p4xvejxOrbzoFcM47nqYDmJzsB2G44w+0fIkik4UiTEJ2OKbVEmAhhu3fpN2RCfQHTDefvAC2rsqpMQro9sp9tbO6gdEY0rJiOP8fHGUmsxu48ingO6PhppbGp19jq9+irhVdoegSERChB/e/nqrigK5BFiSynpM0Q0UiGUvjuABG52caFSiqcQvFT3tV5YvjC1VYW3H41TI/faFFUTyMOYMUair5yXv7gR1nMpW/1zaTAJZvCMuZFkpXNi7KKILReU91+uwhSGc0zOqypiZagnuulKLHuWRUdZwmYxjfne6e1gP3fk7qCyS9EB/LCofSIjFtLucAXgPa3hbxgFjBZ0D72zhMHyV62mHdiDwR9R8D8x9wz1pVnzy7bh/BEG4cmVYaUc82MEV7wGNJ9RNjhc2xGOuLo2oqGf2toj1VwEMuua5aAnDjhAje09fgsJOTasAXzcbvMkY7i5VE7m8MKhYjCGRyGEO1tQcYKyQ8M1VAvERpbWk5Jigi6dEviVsqD37BYP3aXetMLLRVXybws/9hZNsiK4bPlEPlj7o8C6+edlEBh5FPOTz3VoMKG9pnj0rvyaKXiOnCX88VnZVB71cfotum1GXHnv03e9tQInWHjzWM2NFRUqW1KuOH/BpyWpc+kccHkTIK30qvbnHPtHAd5CKhJdSFFreW7qPYzDZR9sDP/qogGjlHzyX0gNWIfFbo5yJKhpWZcAxeSG+dDXhGC1yPQDPLqDDlBeuFDj++9boI7 mLmpftR/ fZKELV7re/imcFPqQMOujaxkTexVZFzBf8mwpMeR6BRLYxxqoqbWJoHsuoF/KJdp/yHPgTjegm9MJLb98+D0ZdVO44I1UpcXp3gNP0kE2HF6LXr0pAt3I6PD6XKmn1JEzRyb27w2i3fESCxZxjXLoiTTeb5GkOXoR33AyYh6Id80suH0X8R2kJfRZDwfZw9YEgs27ESSKwmBx/SEtmsY34eWzXapxJ833u8PhP0pG1K7be2n/QrAx15y/QzH2S4BUt55e3QZrIKz3fCQW7e4wPsntuaVYiODEzZbaosxa8nHkFEKRoCnMcc8r8w== 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: > Add a regset for POE containing POR_EL0. > > Signed-off-by: Joey Gouly > Cc: Catalin Marinas > Cc: Will Deacon > Reviewed-by: Mark Brown > Reviewed-by: Catalin Marinas Reviewed-by: Anshuman Khandual > --- > arch/arm64/kernel/ptrace.c | 46 ++++++++++++++++++++++++++++++++++++++ > include/uapi/linux/elf.h | 1 + > 2 files changed, 47 insertions(+) > > diff --git a/arch/arm64/kernel/ptrace.c b/arch/arm64/kernel/ptrace.c > index 0d022599eb61..b756578aeaee 100644 > --- a/arch/arm64/kernel/ptrace.c > +++ b/arch/arm64/kernel/ptrace.c > @@ -1440,6 +1440,39 @@ static int tagged_addr_ctrl_set(struct task_struct *target, const struct > } > #endif > > +#ifdef CONFIG_ARM64_POE > +static int poe_get(struct task_struct *target, > + const struct user_regset *regset, > + struct membuf to) > +{ > + if (!system_supports_poe()) > + return -EINVAL; > + > + return membuf_write(&to, &target->thread.por_el0, > + sizeof(target->thread.por_el0)); > +} > + > +static int poe_set(struct task_struct *target, const struct > + user_regset *regset, unsigned int pos, > + unsigned int count, const void *kbuf, const > + void __user *ubuf) > +{ > + int ret; > + long ctrl; > + > + if (!system_supports_poe()) > + return -EINVAL; > + > + ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf, &ctrl, 0, -1); > + if (ret) > + return ret; > + > + target->thread.por_el0 = ctrl; > + > + return 0; > +} > +#endif > + > enum aarch64_regset { > REGSET_GPR, > REGSET_FPR, > @@ -1469,6 +1502,9 @@ enum aarch64_regset { > #ifdef CONFIG_ARM64_TAGGED_ADDR_ABI > REGSET_TAGGED_ADDR_CTRL, > #endif > +#ifdef CONFIG_ARM64_POE > + REGSET_POE > +#endif > }; > > static const struct user_regset aarch64_regsets[] = { > @@ -1628,6 +1664,16 @@ static const struct user_regset aarch64_regsets[] = { > .set = tagged_addr_ctrl_set, > }, > #endif > +#ifdef CONFIG_ARM64_POE > + [REGSET_POE] = { > + .core_note_type = NT_ARM_POE, > + .n = 1, > + .size = sizeof(long), > + .align = sizeof(long), > + .regset_get = poe_get, > + .set = poe_set, > + }, > +#endif > }; > > static const struct user_regset_view user_aarch64_view = { > diff --git a/include/uapi/linux/elf.h b/include/uapi/linux/elf.h > index b54b313bcf07..81762ff3c99e 100644 > --- a/include/uapi/linux/elf.h > +++ b/include/uapi/linux/elf.h > @@ -441,6 +441,7 @@ typedef struct elf64_shdr { > #define NT_ARM_ZA 0x40c /* ARM SME ZA registers */ > #define NT_ARM_ZT 0x40d /* ARM SME ZT registers */ > #define NT_ARM_FPMR 0x40e /* ARM floating point mode register */ > +#define NT_ARM_POE 0x40f /* ARM POE registers */ > #define NT_ARC_V2 0x600 /* ARCv2 accumulator/extra registers */ > #define NT_VMCOREDD 0x700 /* Vmcore Device Dump Note */ > #define NT_MIPS_DSP 0x800 /* MIPS DSP ASE registers */