From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756515AbbGPWlA (ORCPT ); Thu, 16 Jul 2015 18:41:00 -0400 Received: from gate.crashing.org ([63.228.1.57]:45037 "EHLO gate.crashing.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751006AbbGPWk7 (ORCPT ); Thu, 16 Jul 2015 18:40:59 -0400 Message-ID: <1437086432.28088.46.camel@kernel.crashing.org> Subject: Re: [RFC PATCH 01/12] powerpc/kernel: Get pt_regs from r9 before calling do_syscall_trace_enter() From: Benjamin Herrenschmidt To: Michael Ellerman Cc: linuxppc-dev@ozlabs.org, wad@chromium.org, keescook@chromium.org, linux-kernel@vger.kernel.org, luto@amacapital.net, strosake@linux.vnet.ibm.com, bogdan.purcareata@freescale.com Date: Fri, 17 Jul 2015 08:40:32 +1000 In-Reply-To: <1436945834-26660-1-git-send-email-mpe@ellerman.id.au> References: <1436945834-26660-1-git-send-email-mpe@ellerman.id.au> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.12.11-0ubuntu3 Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 2015-07-15 at 17:37 +1000, Michael Ellerman wrote: > To call do_syscall_trace_enter() we need pt_regs in r3, but we don't need > to recalculate it based on r1, it's already in r9. > > Signed-off-by: Michael Ellerman Is there any performance difference ? I find the addi a bit more robust in case the code gets moved around or the "previous" code gets changed to either not use r9 or clobber it, which would have the potential to introduce a subtle bug ... Ben. > --- > arch/powerpc/kernel/entry_64.S | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/arch/powerpc/kernel/entry_64.S b/arch/powerpc/kernel/entry_64.S > index 579e0f9a2d57..0796c487d3db 100644 > --- a/arch/powerpc/kernel/entry_64.S > +++ b/arch/powerpc/kernel/entry_64.S > @@ -243,7 +243,9 @@ syscall_error: > /* Traced system call support */ > syscall_dotrace: > bl save_nvgprs > - addi r3,r1,STACK_FRAME_OVERHEAD > + > + /* Get pt_regs into r3 */ > + mr r3, r9 > bl do_syscall_trace_enter > /* > * Restore argument registers possibly just changed.