Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753924AbZCYV0i (ORCPT ); Wed, 25 Mar 2009 17:26:38 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1752770AbZCYV00 (ORCPT ); Wed, 25 Mar 2009 17:26:26 -0400 Received: from hrndva-omtalb.mail.rr.com ([71.74.56.124]:57395 "EHLO hrndva-omtalb.mail.rr.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752370AbZCYV0Z (ORCPT ); Wed, 25 Mar 2009 17:26:25 -0400 Date: Wed, 25 Mar 2009 17:26:22 -0400 (EDT) From: Steven Rostedt X-X-Sender: rostedt@gandalf.stny.rr.com To: Jaswinder Singh Rajput cc: linux kernel , Frederic Weisbecker , Ingo Molnar , Tim Bird , Ingo Molnar , Abhishek Sagar , Peter Zijlstra , Thomas Gleixner Subject: Re: [PATCH][GIT PULL] x86, function-graph: only save return values on x86_64 In-Reply-To: <1238013934.2500.81.camel@ht.satnam> Message-ID: References: <49C936CA.8070800@am.sony.com> <20090324213618.GC5975@nowhere> <20090324214846.GB29509@elte.hu> <20090324215738.GD5975@nowhere> <1238013934.2500.81.camel@ht.satnam> User-Agent: Alpine 2.00 (DEB 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1770 Lines: 60 On Thu, 26 Mar 2009, Jaswinder Singh Rajput wrote: > > > > diff --git a/arch/x86/kernel/entry_64.S b/arch/x86/kernel/entry_64.S > > index a331ec3..1ac9986 100644 > > --- a/arch/x86/kernel/entry_64.S > > +++ b/arch/x86/kernel/entry_64.S > > @@ -147,27 +147,14 @@ END(ftrace_graph_caller) > > GLOBAL(return_to_handler) > > subq $80, %rsp > > > > + /* Save the return values */ > > movq %rax, (%rsp) > > - movq %rcx, 8(%rsp) > > - movq %rdx, 16(%rsp) > > - movq %rsi, 24(%rsp) > > - movq %rdi, 32(%rsp) > > - movq %r8, 40(%rsp) > > - movq %r9, 48(%rsp) > > - movq %r10, 56(%rsp) > > - movq %r11, 64(%rsp) > > + movq %rdx, 8(%rsp) > > > > call ftrace_return_to_handler > > > > movq %rax, 72(%rsp) > > - movq 64(%rsp), %r11 > > - movq 56(%rsp), %r10 > > - movq 48(%rsp), %r9 > > - movq 40(%rsp), %r8 > > - movq 32(%rsp), %rdi > > - movq 24(%rsp), %rsi > > - movq 16(%rsp), %rdx > > - movq 8(%rsp), %rcx > > + movq 8(%rsp), %rdx > > movq (%rsp), %rax > > addq $72, %rsp > > retq > > hmm, is this gonna work: > movq %rax, 16(%rsp) > movq 8(%rsp), %rdx > movq (%rsp), %rax > addq $16, %rsp > retq Interesting. I was just talking over IRC with Frederic about this. One theory about his earlier failures was not having a proper stack frame when calling the function. This is probably a bogus theory and there was probably something else that broke the code. But there is no harm in allocating 80 bytes (it worked before). Thus, I rather error on the side of least change than risk it. -- Steve -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/