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 X-Spam-Level: X-Spam-Status: No, score=-10.7 required=3.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED,DKIM_SIGNED,DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 74E6AC433DB for ; Fri, 29 Jan 2021 07:59:56 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 1801164E00 for ; Fri, 29 Jan 2021 07:59:56 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1801164E00 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References:Message-ID: Subject:To:From:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=OO7uu3svr5Qmh9wxwnch3TW4JUo/syiIc18O+BLnMAY=; b=i9wUs7k8Obvy/nQ6/WGoS0zTY SEAzxCAsuO7cl0stkFyyqB3BgqPYNtl/QTkP/YjWctHlEi9ZXmt1E/Tfbz7CUFPIOo4zkhAZA07hW NgPaE6KsIbdhJSR8e7aM/FkcEZ4tAb3hK9HVJtvlZVk69mDpj4Ulq9jGQvBOKxL0xSMenKZjZ97k9 u99VuRigNOWxzVwZrzM4DMXwMFeNJQaADwiAoX4JOZlJWffOhl67OUxR7GIG5SycZ3vUw3r8BWBoL kzbpAI9I1uMMHfcUEfKX137XCP9+QXbVMd46QedU1Mdusm0dBQKw6ZjwinKf2GZoQkYzrnK5ItqL8 z9aXi9ZFw==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1l5Og2-0007RP-CZ; Fri, 29 Jan 2021 07:58:46 +0000 Received: from mail-pl1-x634.google.com ([2607:f8b0:4864:20::634]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1l5Ofz-0007Pl-EH for linux-arm-kernel@lists.infradead.org; Fri, 29 Jan 2021 07:58:44 +0000 Received: by mail-pl1-x634.google.com with SMTP id q2so4816540plk.4 for ; Thu, 28 Jan 2021 23:58:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=y3XAOAi8AnxCKeXOkyy7rIFzv/9lzK05Mk3CCQ4/jzk=; b=n5QXesFbEUXm66Aqiu9+VDEsajddyoZrsl6SXB5B5G4YLZnAJ0cR2rNYwwOK/bjA5G 9tetoYFzzCeDPWDe1dl4hIgmlmpqvrNHAvB5JlyWkctaupqHHCwYJ9NgdbKRsU5rve7P /khHpP7Y20zUXnLJTk2ybB7zXc3dqlgiGKjnEDDhcyBKaguLOjPwJUq/D1YxiVhGmtlH vpjjktkaovF+vskOJWT9FKXc1FmsHAEhn4atcw1VxboDlXJzswPcucPj6aegJRFwR3E3 H555hZYwli24TPn5CC1j0D9JBJbofgkLIMhZtqh+WLgwcNWGZokbq+j8Pxnhgf9DiMfP LcyA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=y3XAOAi8AnxCKeXOkyy7rIFzv/9lzK05Mk3CCQ4/jzk=; b=HEPEKHxe+bAmFEQkjQ7MCQYzM81IuTGDQRFfDeTLZyUFN03wod0NKM6qCmyjp+FJ/e H2LlOwgkPx3mIi3e4a5y6LsQu7nM+62fJERyj8vKS1+l20ygarp7bq90uKk4GjlCqmUH /8WIla109Nqj7UHVwvFFM+K3czW7UK9jcohapDBs1ADrBuGyqD3eliq3NU3Z+Kf3hdi2 NeDmuiRBRz+kodw1I3UhrCZV7QCNPUAOeluQhNUSuu5nIKfIFYYIvnWwDXiLYipFNBvK 9ZibVVI9HArqEiFxvitmMdavYVowjjFFWWFG/P6wGuaj/u20HPIeBJ2vXE/AeBC775qR lS6Q== X-Gm-Message-State: AOAM530ztRi6CfsgqVNFLAp/osxIR2BMO45qwF8ulsCn9r17xY/V0FDK uKOzfxMYtxgdEc5su7otnEw= X-Google-Smtp-Source: ABdhPJy/ZRQ7lsbJdJDRdQWTjVP5I9qsKAdeKgTUhFf/AMbl4WD6L7ntbq6ZOQ4JpAGvwBqjATkgPQ== X-Received: by 2002:a17:90a:5303:: with SMTP id x3mr3468699pjh.54.1611907119492; Thu, 28 Jan 2021 23:58:39 -0800 (PST) Received: from gmail.com ([2601:600:9b7f:872e:a655:30fb:7373:c762]) by smtp.gmail.com with ESMTPSA id j26sm4652613pfa.35.2021.01.28.23.58.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 28 Jan 2021 23:58:38 -0800 (PST) Date: Thu, 28 Jan 2021 23:56:59 -0800 From: Andrei Vagin To: Dave Martin Subject: Re: [PATCH 2/3] arm64/ptrace: introduce NT_ARM_PRSTATUS to get a full set of registers Message-ID: <20210129075659.GA155266@gmail.com> References: <20210119220637.494476-1-avagin@gmail.com> <20210119220637.494476-3-avagin@gmail.com> <20210127145304.GC13952@arm.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20210127145304.GC13952@arm.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210129_025843_493882_E0CF6A87 X-CRM114-Status: GOOD ( 26.99 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Catalin Marinas , Will Deacon , Oleg Nesterov , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Wed, Jan 27, 2021 at 02:53:07PM +0000, Dave Martin wrote: > On Tue, Jan 19, 2021 at 02:06:36PM -0800, Andrei Vagin wrote: > > This is an alternative to NT_PRSTATUS that clobbers ip/r12 on AArch32, > > x7 on AArch64 when a tracee is stopped in syscall entry or syscall exit > > traps. > > > > Signed-off-by: Andrei Vagin > > This approach looks like it works, though I still think adding an option > for this under PTRACE_SETOPTIONS would be less intrusive. Dave, thank you for the feedback. I will prepare a patch with an option and then we will see what looks better. > > Adding a shadow regset like this also looks like it would cause the gp > regs to be pointlessly be dumped twice in a core dump. Avoiding that > might require hacks in the core code... > > > > --- > > arch/arm64/kernel/ptrace.c | 39 ++++++++++++++++++++++++++++++++++++++ > > include/uapi/linux/elf.h | 1 + > > 2 files changed, 40 insertions(+) > > > > diff --git a/arch/arm64/kernel/ptrace.c b/arch/arm64/kernel/ptrace.c > > index 1863f080cb07..b8e4c2ddf636 100644 > > --- a/arch/arm64/kernel/ptrace.c > > +++ b/arch/arm64/kernel/ptrace.c > > @@ -591,6 +591,15 @@ static int gpr_get(struct task_struct *target, > > return ret; > > } > > > > +static int gpr_get_full(struct task_struct *target, > > + const struct user_regset *regset, > > + struct membuf to) > > +{ > > + struct user_pt_regs *uregs = &task_pt_regs(target)->user_regs; > > + > > + return membuf_write(&to, uregs, sizeof(*uregs)); > > +} > > + > > static int gpr_set(struct task_struct *target, const struct user_regset *regset, > > unsigned int pos, unsigned int count, > > const void *kbuf, const void __user *ubuf) > > @@ -1088,6 +1097,7 @@ static int tagged_addr_ctrl_set(struct task_struct *target, const struct > > > > enum aarch64_regset { > > REGSET_GPR, > > + REGSET_GPR_FULL, > > If we go with this approach, "REGSET_GPR_RAW" might be a preferable > name. Both regs represent all the regs ("full"), but REGSET_GPR is > mangled by the kernel. I agree that REGSET_GPR_RAW looks better in this case. > > > REGSET_FPR, > > REGSET_TLS, > > #ifdef CONFIG_HAVE_HW_BREAKPOINT > > @@ -1119,6 +1129,14 @@ static const struct user_regset aarch64_regsets[] = { > > .regset_get = gpr_get, > > .set = gpr_set > > }, > > + [REGSET_GPR_FULL] = { > > + .core_note_type = NT_ARM_PRSTATUS, ... > > diff --git a/include/uapi/linux/elf.h b/include/uapi/linux/elf.h > > index 30f68b42eeb5..a2086d19263a 100644 > > --- a/include/uapi/linux/elf.h > > +++ b/include/uapi/linux/elf.h > > @@ -426,6 +426,7 @@ typedef struct elf64_shdr { > > #define NT_ARM_PACA_KEYS 0x407 /* ARM pointer authentication address keys */ > > #define NT_ARM_PACG_KEYS 0x408 /* ARM pointer authentication generic key */ > > #define NT_ARM_TAGGED_ADDR_CTRL 0x409 /* arm64 tagged address control (prctl()) */ > > What happened to 0x40a..0x40f? shame on me :) > > [...] > > Cheers > ---Dave _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel