All of lore.kernel.org
 help / color / mirror / Atom feed
From: Borislav Petkov <bp@suse.de>
To: Steven Rostedt <rostedt@goodmis.org>
Cc: tip-bot2 for Jiri Slaby <tip-bot2@linutronix.de>,
	linux-kernel@vger.kernel.org, linux-tip-commits@vger.kernel.org,
	Jiri Slaby <jslaby@suse.cz>, "H. Peter Anvin" <hpa@zytor.com>,
	Ingo Molnar <mingo@redhat.com>,
	Josh Poimboeuf <jpoimboe@redhat.com>,
	linux-arch@vger.kernel.org,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Thomas Gleixner <tglx@linutronix.de>, x86-ml <x86@kernel.org>,
	Ingo Molnar <mingo@kernel.org>, Borislav Petkov <bp@alien8.de>
Subject: Re: [tip: x86/asm] x86/asm/ftrace: Mark function_hook as function
Date: Sat, 19 Oct 2019 09:34:24 +0200	[thread overview]
Message-ID: <20191019073424.GA27353@zn.tnic> (raw)
In-Reply-To: <20191018163125.346e078d@gandalf.local.home>

On Fri, Oct 18, 2019 at 04:31:25PM -0400, Steven Rostedt wrote:
> Still looks ugly ;-)

See below. I think it's not so bad. It is only built-tested on 64-bit and
objtool complains about something again:

arch/x86/kernel/ftrace_64.o: warning: objtool: .entry.text+0x0: unreachable instruction

but I think it is the better thing to do.

> I do the talks hoping someone else will finally sit down and write the
> documentation!

Well, you can put down the outline of the doc and flesh out section by
section gradually. Besides, you have all the text in your slides so it
is actually more or less a copy+paste.

---
diff --git a/Documentation/asm-annotations.rst b/Documentation/asm-annotations.rst
index 29ccd6e61fe5..f55c2bb74d00 100644
--- a/Documentation/asm-annotations.rst
+++ b/Documentation/asm-annotations.rst
@@ -117,9 +117,9 @@ This section covers ``SYM_FUNC_*`` and ``SYM_CODE_*`` enumerated above.
   So in most cases, developers should write something like in the following
   example, having some asm instructions in between the macros, of course::
 
-    SYM_FUNC_START(function_hook)
+    SYM_FUNC_START(memset)
         ... asm insns ...
-    SYM_FUNC_END(function_hook)
+    SYM_FUNC_END(memset)
 
   In fact, this kind of annotation corresponds to the now deprecated ``ENTRY``
   and ``ENDPROC`` macros.
diff --git a/arch/x86/kernel/ftrace_32.S b/arch/x86/kernel/ftrace_32.S
index 8ed1f5d371f0..77be7e7e5e59 100644
--- a/arch/x86/kernel/ftrace_32.S
+++ b/arch/x86/kernel/ftrace_32.S
@@ -12,18 +12,16 @@
 #include <asm/frame.h>
 #include <asm/asm-offsets.h>
 
-# define function_hook	__fentry__
-EXPORT_SYMBOL(__fentry__)
-
 #ifdef CONFIG_FRAME_POINTER
 # define MCOUNT_FRAME			1	/* using frame = true  */
 #else
 # define MCOUNT_FRAME			0	/* using frame = false */
 #endif
 
-SYM_FUNC_START(function_hook)
+SYM_CODE_START(__fentry__)
 	ret
-SYM_FUNC_END(function_hook)
+SYM_CODE_END(__fentry__)
+EXPORT_SYMBOL(__fentry__)
 
 SYM_CODE_START(ftrace_caller)
 
diff --git a/arch/x86/kernel/ftrace_64.S b/arch/x86/kernel/ftrace_64.S
index 69c8d1b9119e..3029fe4f8547 100644
--- a/arch/x86/kernel/ftrace_64.S
+++ b/arch/x86/kernel/ftrace_64.S
@@ -14,9 +14,6 @@
 	.code64
 	.section .entry.text, "ax"
 
-# define function_hook	__fentry__
-EXPORT_SYMBOL(__fentry__)
-
 #ifdef CONFIG_FRAME_POINTER
 /* Save parent and function stack frames (rip and rbp) */
 #  define MCOUNT_FRAME_SIZE	(8+16*2)
@@ -132,9 +129,10 @@ EXPORT_SYMBOL(__fentry__)
 
 #ifdef CONFIG_DYNAMIC_FTRACE
 
-SYM_FUNC_START(function_hook)
+SYM_CODE_START(__fentry__)
 	retq
-SYM_FUNC_END(function_hook)
+SYM_CODE_END(__fentry__)
+EXPORT_SYMBOL(__fentry__)
 
 SYM_FUNC_START(ftrace_caller)
 	/* save_mcount_regs fills in first two parameters */
@@ -248,7 +246,7 @@ SYM_FUNC_END(ftrace_regs_caller)
 
 #else /* ! CONFIG_DYNAMIC_FTRACE */
 
-SYM_FUNC_START(function_hook)
+SYM_CODE_START(__fentry__)
 	cmpq $ftrace_stub, ftrace_trace_function
 	jnz trace
 
@@ -279,7 +277,8 @@ trace:
 	restore_mcount_regs
 
 	jmp fgraph_trace
-SYM_FUNC_END(function_hook)
+SYM_CODE_END(__fentry__)
+EXPORT_SYMBOL(__fentry__)
 #endif /* CONFIG_DYNAMIC_FTRACE */
 
 #ifdef CONFIG_FUNCTION_GRAPH_TRACER

-- 
Regards/Gruss,
    Boris.

SUSE Software Solutions Germany GmbH, GF: Felix Imendörffer, HRB 36809, AG Nürnberg

  reply	other threads:[~2019-10-19  7:34 UTC|newest]

Thread overview: 110+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-11 11:50 [PATCH v9 00/28] New macros for assembler symbols Jiri Slaby
2019-10-11 11:50 ` [PATCH v9 01/28] linkage: Introduce new " Jiri Slaby
2019-10-11 11:50   ` [Xen-devel] " Jiri Slaby
2019-10-11 11:50   ` Jiri Slaby
2019-10-14  9:31   ` Rafael J. Wysocki
2019-10-14  9:31     ` [Xen-devel] " Rafael J. Wysocki
2019-10-18 16:30   ` [tip: x86/asm] " tip-bot2 for Jiri Slaby
2019-10-18 16:30     ` [Xen-devel] " tip-bot2 for Jiri Slaby
2019-10-18 16:30     ` tip-bot2 for Jiri Slaby
2019-10-11 11:50 ` [PATCH v9 02/28] x86/asm/suspend: Use SYM_DATA for data Jiri Slaby
2019-10-18 16:30   ` [tip: x86/asm] " tip-bot2 for Jiri Slaby
2019-10-11 11:50 ` [PATCH v9 03/28] x86/asm: Annotate relocate_kernel_{32,64}.c Jiri Slaby
2019-10-14 13:15   ` Borislav Petkov
2019-10-18 16:30   ` [tip: x86/asm] " tip-bot2 for Jiri Slaby
2019-10-11 11:50 ` [PATCH v9 04/28] x86/asm/entry: Annotate THUNKs Jiri Slaby
2019-10-14 13:38   ` Borislav Petkov
2019-10-18 16:30   ` [tip: x86/asm] " tip-bot2 for Jiri Slaby
2019-10-11 11:50 ` [PATCH v9 05/28] x86/asm: Annotate local pseudo-functions Jiri Slaby
2019-10-18 16:30   ` [tip: x86/asm] " tip-bot2 for Jiri Slaby
2019-10-11 11:50 ` [PATCH v9 06/28] x86/asm/crypto: Annotate local functions Jiri Slaby
2019-10-18 16:30   ` [tip: x86/asm] " tip-bot2 for Jiri Slaby
2019-10-11 11:50 ` [PATCH v9 07/28] x86/boot: " Jiri Slaby
2019-10-14 14:27   ` Borislav Petkov
2019-10-15  5:43     ` Jiri Slaby
2019-10-18 16:30   ` [tip: x86/asm] " tip-bot2 for Jiri Slaby
2019-10-11 11:50 ` [PATCH v9 08/28] x86/uaccess: Annotate local function Jiri Slaby
2019-10-18 16:30   ` [tip: x86/asm] " tip-bot2 for Jiri Slaby
2019-10-11 11:50 ` [PATCH v9 09/28] x86/asm: Annotate aliases Jiri Slaby
2019-10-11 11:50   ` [Xen-devel] " Jiri Slaby
2019-10-11 11:50   ` Jiri Slaby
2019-10-18 16:30   ` [tip: x86/asm] " tip-bot2 for Jiri Slaby
2019-10-18 16:30     ` [Xen-devel] " tip-bot2 for Jiri Slaby
2019-10-18 16:30     ` tip-bot2 for Jiri Slaby
2019-10-11 11:50 ` [PATCH v9 10/28] x86/asm/entry: Annotate interrupt symbols properly Jiri Slaby
2019-10-18 16:30   ` [tip: x86/asm] " tip-bot2 for Jiri Slaby
2019-10-11 11:50 ` [PATCH v9 11/28] x86/asm/head: Annotate data appropriately Jiri Slaby
2019-10-18 16:30   ` [tip: x86/asm] " tip-bot2 for Jiri Slaby
2019-10-11 11:50 ` [PATCH v9 12/28] x86/boot: " Jiri Slaby
2019-10-18 16:30   ` [tip: x86/asm] " tip-bot2 for Jiri Slaby
2019-10-11 11:50 ` [PATCH v9 13/28] um: " Jiri Slaby
2019-10-15 15:37   ` Richard Weinberger
2019-10-18 16:30   ` [tip: x86/asm] x86/um: " tip-bot2 for Jiri Slaby
2019-10-11 11:50 ` [PATCH v9 14/28] xen/pvh: " Jiri Slaby
2019-10-11 11:50   ` [Xen-devel] " Jiri Slaby
2019-10-18 16:30   ` [tip: x86/asm] " tip-bot2 for Jiri Slaby
2019-10-18 16:30     ` [Xen-devel] " tip-bot2 for Jiri Slaby
2019-10-18 16:30     ` tip-bot2 for Jiri Slaby
2019-10-11 11:50 ` [PATCH v9 15/28] x86/asm/purgatory: Start using annotations Jiri Slaby
2019-10-15 17:03   ` Borislav Petkov
2019-10-18 16:30   ` [tip: x86/asm] " tip-bot2 for Jiri Slaby
2019-10-11 11:50 ` [PATCH v9 16/28] x86/asm: Do not annotate functions by GLOBAL Jiri Slaby
2019-10-18 16:30   ` [tip: x86/asm] x86/asm: Do not annotate functions with GLOBAL tip-bot2 for Jiri Slaby
2019-10-11 11:50 ` [PATCH v9 17/28] x86/asm: Use SYM_INNER_LABEL instead of GLOBAL Jiri Slaby
2019-10-15 17:31   ` Borislav Petkov
2019-10-18 16:30   ` [tip: x86/asm] " tip-bot2 for Jiri Slaby
2019-10-11 11:50 ` [PATCH v9 18/28] x86/asm/realmode: Use SYM_DATA_* " Jiri Slaby
2019-10-18 16:30   ` [tip: x86/asm] " tip-bot2 for Jiri Slaby
2019-10-11 11:50 ` [PATCH v9 19/28] x86/asm: Kill the last GLOBAL user and remove the macro Jiri Slaby
2019-10-18 16:30   ` [tip: x86/asm] x86/asm: Remove " tip-bot2 for Jiri Slaby
2019-10-11 11:51 ` [PATCH v9 20/28] x86/asm: Make some functions local Jiri Slaby
2019-10-11 11:51   ` [Xen-devel] " Jiri Slaby
2019-10-18 16:30   ` [tip: x86/asm] " tip-bot2 for Jiri Slaby
2019-10-18 16:30     ` [Xen-devel] " tip-bot2 for Jiri Slaby
2019-10-18 16:30     ` tip-bot2 for Jiri Slaby
2019-10-11 11:51 ` [PATCH v9 21/28] x86/asm/ftrace: Mark function_hook as function Jiri Slaby
2019-10-18 16:30   ` [tip: x86/asm] " tip-bot2 for Jiri Slaby
2019-10-18 16:48     ` Steven Rostedt
2019-10-18 16:49       ` Steven Rostedt
2019-10-18 17:13         ` Borislav Petkov
2019-10-18 17:37           ` Steven Rostedt
2019-10-18 19:48             ` Borislav Petkov
2019-10-18 20:31               ` Steven Rostedt
2019-10-19  7:34                 ` Borislav Petkov [this message]
2019-10-21 14:10                   ` [PATCH] x86/ftrace: Get rid of function_hook Borislav Petkov
2019-10-21 14:33                     ` Steven Rostedt
2019-10-22 11:38                     ` Jiri Slaby
2019-10-22 12:56                       ` Borislav Petkov
2019-10-22 12:57                         ` [PATCH -v2] " Borislav Petkov
2019-10-25  9:00       ` [tip: x86/asm] " tip-bot2 for Borislav Petkov
2019-10-11 11:51 ` [PATCH v9 22/28] x86_64/asm: Add ENDs to some functions and relabel with SYM_CODE_* Jiri Slaby
2019-10-11 11:51   ` [Xen-devel] " Jiri Slaby
2019-10-18 16:30   ` [tip: x86/asm] x86/asm/64: " tip-bot2 for Jiri Slaby
2019-10-18 16:30     ` [Xen-devel] " tip-bot2 for Jiri Slaby
2019-10-18 16:30     ` tip-bot2 for Jiri Slaby
2019-10-11 11:51 ` [PATCH v9 23/28] x86_64/asm: Change all ENTRY+END to SYM_CODE_* Jiri Slaby
2019-10-11 11:51   ` [Xen-devel] " Jiri Slaby
2019-10-18 16:30   ` [tip: x86/asm] x86/asm/64: " tip-bot2 for Jiri Slaby
2019-10-18 16:30     ` [Xen-devel] " tip-bot2 for Jiri Slaby
2019-10-11 11:51 ` [PATCH v9 24/28] x86_64/asm: Change all ENTRY+ENDPROC to SYM_FUNC_* Jiri Slaby
2019-10-11 11:51   ` [Xen-devel] " Jiri Slaby
2019-10-16  7:12   ` Borislav Petkov
2019-10-16  7:12     ` [Xen-devel] " Borislav Petkov
2019-10-16  7:12     ` Borislav Petkov
2019-10-16  7:12     ` Borislav Petkov
2019-10-18  6:56     ` Herbert Xu
2019-10-18  6:56       ` [Xen-devel] " Herbert Xu
2019-10-18 16:30   ` [tip: x86/asm] x86/asm: " tip-bot2 for Jiri Slaby
2019-10-18 16:30     ` [Xen-devel] " tip-bot2 for Jiri Slaby
2019-10-11 11:51 ` [PATCH v9 25/28] x86_32/asm: Add ENDs to some functions and relabel with SYM_CODE_* Jiri Slaby
2019-10-11 11:51   ` [Xen-devel] " Jiri Slaby
2019-10-18 16:30   ` [tip: x86/asm] x86/asm/32: " tip-bot2 for Jiri Slaby
2019-10-18 16:30     ` [Xen-devel] " tip-bot2 for Jiri Slaby
2019-10-18 16:30     ` tip-bot2 for Jiri Slaby
2019-10-11 11:51 ` [PATCH v9 26/28] x86_32/asm: Change all ENTRY+END to SYM_CODE_* Jiri Slaby
2019-10-18 16:30   ` [tip: x86/asm] x86/asm/32: " tip-bot2 for Jiri Slaby
2019-10-11 11:51 ` [PATCH v9 27/28] x86_32/asm: Change all ENTRY+ENDPROC to SYM_FUNC_* Jiri Slaby
2019-10-18 16:30   ` [tip: x86/asm] x86/asm/32: " tip-bot2 for Jiri Slaby
2019-10-18 16:30     ` tip-bot2 for Jiri Slaby
2019-10-11 11:51 ` [PATCH v9 28/28] x86/asm: Replace WEAK uses by SYM_INNER_LABEL_ALIGN Jiri Slaby
2019-10-18 16:30   ` [tip: x86/asm] " tip-bot2 for Jiri Slaby

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=20191019073424.GA27353@zn.tnic \
    --to=bp@suse.de \
    --cc=bp@alien8.de \
    --cc=hpa@zytor.com \
    --cc=jpoimboe@redhat.com \
    --cc=jslaby@suse.cz \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tip-commits@vger.kernel.org \
    --cc=mhiramat@kernel.org \
    --cc=mingo@kernel.org \
    --cc=mingo@redhat.com \
    --cc=peterz@infradead.org \
    --cc=rostedt@goodmis.org \
    --cc=tglx@linutronix.de \
    --cc=tip-bot2@linutronix.de \
    --cc=x86@kernel.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.