public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Steven Rostedt <rostedt@goodmis.org>
To: linux-kernel@vger.kernel.org
Cc: Ingo Molnar <mingo@elte.hu>,
	Andrew Morton <akpm@linux-foundation.org>,
	Frederic Weisbecker <fweisbec@gmail.com>,
	Martin Schwidefsky <schwidefsky@de.ibm.com>
Subject: [PATCH 14/15] ftrace/x86: mcount offset calculation
Date: Wed, 18 May 2011 12:08:23 -0400	[thread overview]
Message-ID: <20110518160909.641109014@goodmis.org> (raw)
In-Reply-To: 20110518160809.724215604@goodmis.org

[-- Attachment #1: 0014-ftrace-x86-mcount-offset-calculation.patch --]
[-- Type: text/plain, Size: 2342 bytes --]

From: Martin Schwidefsky <schwidefsky@de.ibm.com>

Do the mcount offset adjustment in the recordmcount.pl/recordmcount.[ch]
at compile time and not in ftrace_call_adjust at run time.

Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
---
 arch/x86/include/asm/ftrace.h |    7 +++----
 scripts/recordmcount.c        |    2 ++
 scripts/recordmcount.pl       |    2 ++
 3 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/arch/x86/include/asm/ftrace.h b/arch/x86/include/asm/ftrace.h
index db24c22..268c783 100644
--- a/arch/x86/include/asm/ftrace.h
+++ b/arch/x86/include/asm/ftrace.h
@@ -38,11 +38,10 @@ extern void mcount(void);
 static inline unsigned long ftrace_call_adjust(unsigned long addr)
 {
 	/*
-	 * call mcount is "e8 <4 byte offset>"
-	 * The addr points to the 4 byte offset and the caller of this
-	 * function wants the pointer to e8. Simply subtract one.
+	 * addr is the address of the mcount call instruction.
+	 * recordmcount does the necessary offset calculation.
 	 */
-	return addr - 1;
+	return addr;
 }
 
 #ifdef CONFIG_DYNAMIC_FTRACE
diff --git a/scripts/recordmcount.c b/scripts/recordmcount.c
index 0e18975..7648a5d 100644
--- a/scripts/recordmcount.c
+++ b/scripts/recordmcount.c
@@ -335,6 +335,7 @@ do_file(char const *const fname)
 		reltype = R_386_32;
 		make_nop = make_nop_x86;
 		ideal_nop = ideal_nop5_x86_32;
+		mcount_adjust_32 = -1;
 		break;
 	case EM_ARM:	 reltype = R_ARM_ABS32;
 			 altmcount = "__gnu_mcount_nc";
@@ -350,6 +351,7 @@ do_file(char const *const fname)
 		make_nop = make_nop_x86;
 		ideal_nop = ideal_nop5_x86_64;
 		reltype = R_X86_64_64;
+		mcount_adjust_64 = -1;
 		break;
 	}  /* end switch */
 
diff --git a/scripts/recordmcount.pl b/scripts/recordmcount.pl
index a871cd4..414e7f5 100755
--- a/scripts/recordmcount.pl
+++ b/scripts/recordmcount.pl
@@ -223,6 +223,7 @@ if ($arch eq "x86_64") {
     $mcount_regex = "^\\s*([0-9a-fA-F]+):.*\\smcount([+-]0x[0-9a-zA-Z]+)?\$";
     $type = ".quad";
     $alignment = 8;
+    $mcount_adjust = -1;
 
     # force flags for this arch
     $ld .= " -m elf_x86_64";
@@ -232,6 +233,7 @@ if ($arch eq "x86_64") {
 
 } elsif ($arch eq "i386") {
     $alignment = 4;
+    $mcount_adjust = -1;
 
     # force flags for this arch
     $ld .= " -m elf_i386";
-- 
1.7.4.4



  parent reply	other threads:[~2011-05-18 16:09 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-05-18 16:08 [PATCH 00/15] [GIT PULL] ftrace/recordmcount: cleanups and updates for recordmcount processing Steven Rostedt
2011-05-18 16:08 ` [PATCH 01/15] ftrace/kbuild: Add recordmcount files to force full build Steven Rostedt
2011-05-18 16:08 ` [PATCH 02/15] ftrace/trivial: Clean up recordmcount.c to use Linux style Steven Rostedt
2011-05-18 16:08 ` [PATCH 03/15] ftrace/trivial: Clean up record mcount to use Linux switch style Steven Rostedt
2011-05-18 16:08 ` [PATCH 04/15] ftrace: Add .kprobe.text section to whitelist for recordmcount.c Steven Rostedt
2011-05-18 16:08 ` [PATCH 05/15] ftrace/recordmcount: Modify only executable sections Steven Rostedt
2011-05-18 16:08 ` [PATCH 06/15] ftrace/recordmcount: Make ignored mcount calls into nops at compile Steven Rostedt
2011-05-18 16:08 ` [PATCH 07/15] ftrace/recordmcount: Add warning logic to warn on mcount not Steven Rostedt
2011-05-18 16:08 ` [PATCH 08/15] kbuild/recordmcount: Add RECORDMCOUNT_WARN to warn about mcount Steven Rostedt
2011-05-18 16:08 ` [PATCH 09/15] ftrace: Avoid recording mcount on .init sections directly Steven Rostedt
2011-05-18 16:08 ` [PATCH 10/15] ftrace/x86: Do not trace .discard.text section Steven Rostedt
2011-05-18 16:08 ` [PATCH 11/15] ftrace/recordmcount: Remove duplicate code to find mcount symbol Steven Rostedt
2011-05-18 16:08 ` [PATCH 12/15] ftrace/recordmcount: Add helper function get_sym_str_and_relp() Steven Rostedt
2011-05-18 16:08 ` [PATCH 13/15] ftrace/recordmcount: mcount address adjustment Steven Rostedt
2011-05-18 16:08 ` Steven Rostedt [this message]
2011-05-18 16:08 ` [PATCH 15/15] ftrace/s390: mcount offset calculation Steven Rostedt
2011-05-18 16:28 ` [PATCH 00/15] [GIT PULL] ftrace/recordmcount: cleanups and updates for recordmcount processing Steven Rostedt
2011-05-18 18:13   ` Ingo Molnar
2011-05-18 18:52     ` Steven Rostedt
2011-05-18 18:02 ` Ingo Molnar

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=20110518160909.641109014@goodmis.org \
    --to=rostedt@goodmis.org \
    --cc=akpm@linux-foundation.org \
    --cc=fweisbec@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=schwidefsky@de.ibm.com \
    /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