From: Steven Rostedt <rostedt@goodmis.org>
To: linux-kernel@vger.kernel.org
Cc: Ingo Molnar <mingo@kernel.org>,
Andrew Morton <akpm@linux-foundation.org>,
Thomas Gleixner <tglx@linutronix.de>
Subject: [for-next][PATCH 6/9] ftrace/x86: Add macro MCOUNT_REG_SIZE for amount of stack used to save mcount regs
Date: Mon, 01 Dec 2014 14:22:31 -0500 [thread overview]
Message-ID: <20141201192307.522306687@goodmis.org> (raw)
In-Reply-To: 20141201192225.548178029@goodmis.org
[-- Attachment #1: 0006-ftrace-x86-Add-macro-MCOUNT_REG_SIZE-for-amount-of-s.patch --]
[-- Type: text/plain, Size: 3396 bytes --]
From: "Steven Rostedt (Red Hat)" <rostedt@goodmis.org>
The macro save_mcount_regs saves regs onto the stack. But to uncouple the
amount of stack used in that macro from the users of the macro, we need
to have a define that tells all the users how much stack is used by that
macro. This way we can change the amount of stack the macro uses without
breaking its users.
Also remove some dead code that was left over from commit fdc841b58cf5
"ftrace: x86: Remove check of obsolete variable function_trace_stop".
Link: http://lkml.kernel.org/r/alpine.DEB.2.11.1411262304010.3961@nanos
Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
---
arch/x86/kernel/mcount_64.S | 24 ++++++++++++------------
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/arch/x86/kernel/mcount_64.S b/arch/x86/kernel/mcount_64.S
index 596ac330c1db..a0f6f942183a 100644
--- a/arch/x86/kernel/mcount_64.S
+++ b/arch/x86/kernel/mcount_64.S
@@ -21,6 +21,9 @@
# define function_hook mcount
#endif
+/* Size of stack used to save mcount regs in save_mcount_regs */
+#define MCOUNT_REG_SIZE (SS+8)
+
/*
* gcc -pg option adds a call to 'mcount' in most functions.
* When -mfentry is used, the call is to 'fentry' and not 'mcount'
@@ -42,7 +45,7 @@
/*
* We add enough stack to save all regs.
*/
- subq $(SS+8), %rsp
+ subq $MCOUNT_REG_SIZE, %rsp
movq %rax, RAX(%rsp)
movq %rcx, RCX(%rsp)
movq %rdx, RDX(%rsp)
@@ -51,7 +54,7 @@
movq %r8, R8(%rsp)
movq %r9, R9(%rsp)
/* Move RIP to its proper location */
- movq SS+8+\added(%rsp), %rdi
+ movq MCOUNT_REG_SIZE+\added(%rsp), %rdi
movq %rdi, RIP(%rsp)
.endm
@@ -63,7 +66,7 @@
movq RDX(%rsp), %rdx
movq RCX(%rsp), %rcx
movq RAX(%rsp), %rax
- addq $(SS+8), %rsp
+ addq $MCOUNT_REG_SIZE, %rsp
.endm
/* skip is set if stack has been adjusted */
@@ -79,7 +82,7 @@ GLOBAL(\trace_label)
subq $MCOUNT_INSN_SIZE, %rdi
/* Load the parent_ip into the second parameter */
#ifdef CC_USING_FENTRY
- movq SS+16+\added(%rsp), %rsi
+ movq MCOUNT_REG_SIZE+8+\added(%rsp), %rsi
#else
movq 8+\added(%rbp), %rsi
#endif
@@ -172,7 +175,7 @@ ENTRY(ftrace_regs_caller)
movq %rbp, RBP(%rsp)
movq %rbx, RBX(%rsp)
/* Copy saved flags */
- movq SS+8(%rsp), %rcx
+ movq MCOUNT_REG_SIZE(%rsp), %rcx
movq %rcx, EFLAGS(%rsp)
/* Kernel segments */
movq $__KERNEL_DS, %rcx
@@ -180,7 +183,7 @@ ENTRY(ftrace_regs_caller)
movq $__KERNEL_CS, %rcx
movq %rcx, CS(%rsp)
/* Stack - skipping return address and flags */
- leaq SS+8*3(%rsp), %rcx
+ leaq MCOUNT_REG_SIZE+8*2(%rsp), %rcx
movq %rcx, RSP(%rsp)
/* regs go into 4th parameter */
@@ -195,11 +198,11 @@ GLOBAL(ftrace_regs_call)
/* Copy flags back to SS, to restore them */
movq EFLAGS(%rsp), %rax
- movq %rax, SS+8(%rsp)
+ movq %rax, MCOUNT_REG_SIZE(%rsp)
/* Handlers can change the RIP */
movq RIP(%rsp), %rax
- movq %rax, SS+8*2(%rsp)
+ movq %rax, MCOUNT_REG_SIZE+8(%rsp)
/* restore the rest of pt_regs */
movq R15(%rsp), %r15
@@ -225,9 +228,6 @@ GLOBAL(ftrace_regs_caller_end)
jmp ftrace_return
- popfq
- jmp ftrace_stub
-
END(ftrace_regs_caller)
@@ -266,7 +266,7 @@ ENTRY(ftrace_graph_caller)
save_mcount_regs
#ifdef CC_USING_FENTRY
- leaq SS+16(%rsp), %rdi
+ leaq MCOUNT_REG_SIZE+8(%rsp), %rdi
movq $0, %rdx /* No framepointers needed */
#else
leaq 8(%rbp), %rdi
--
2.1.3
next prev parent reply other threads:[~2014-12-01 19:24 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-01 19:22 [for-next][PATCH 0/9] ftrace/x86: Updated mcount cleanup for 3.19 Steven Rostedt
2014-12-01 19:22 ` [for-next][PATCH 1/9] ftrace/x86: Have static tracing also use ftrace_caller_setup Steven Rostedt
2014-12-01 19:22 ` [for-next][PATCH 2/9] ftrace/x86: Move MCOUNT_SAVE_FRAME out of header file Steven Rostedt
2014-12-01 19:22 ` [for-next][PATCH 3/9] ftrace/x86: Rename MCOUNT_SAVE_FRAME and add more detailed comments Steven Rostedt
2014-12-01 19:22 ` [for-next][PATCH 4/9] ftrace/x86: Have save_mcount_regs store RIP in %rdi for first parameter Steven Rostedt
2014-12-01 19:22 ` [for-next][PATCH 5/9] ftrace/x86: Simplify save_mcount_regs on getting RIP Steven Rostedt
2014-12-01 19:22 ` Steven Rostedt [this message]
2014-12-01 19:22 ` [for-next][PATCH 7/9] ftrace/x86: Have save_mcount_regs macro also save stack frames if needed Steven Rostedt
2014-12-01 19:22 ` [for-next][PATCH 8/9] ftrace/x86: Get rid of ftrace_caller_setup Steven Rostedt
2014-12-01 19:22 ` [for-next][PATCH 9/9] ftrace/fgraph/x86: Have prepare_ftrace_return() take ip as first parameter Steven Rostedt
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20141201192307.522306687@goodmis.org \
--to=rostedt@goodmis.org \
--cc=akpm@linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox