From: Steven Rostedt <rostedt@goodmis.org> To: linux-kernel@vger.kernel.org Cc: Linus Torvalds <torvalds@linux-foundation.org>, Ingo Molnar <mingo@kernel.org>, Andrew Morton <akpm@linux-foundation.org>, Thomas Gleixner <tglx@linutronix.de>, Peter Zijlstra <peterz@infradead.org>, linux-arch@vger.kernel.org, Joel Fernandes <joel@joelfernandes.org>, Masami Hiramatsu <mhiramat@kernel.org>, Josh Poimboeuf <jpoimboe@redhat.com>, Andy Lutomirski <luto@kernel.org>, Frederic Weisbecker <frederic@kernel.org>, Yoshinori Sato <ysato@users.sourceforge.jp>, Rich Felker <dalias@libc.org>, linux-sh@vger.kernel.org, stable@kernel.org Subject: [for-next][PATCH 12/18] sh/function_graph: Simplify with function_graph_entry() Date: Thu, 22 Nov 2018 00:28:13 +0000 [thread overview] Message-ID: <20181122003333.106149216@goodmis.org> (raw) In-Reply-To: 20181122002801.501220343@goodmis.org From: "Steven Rostedt (VMware)" <rostedt@goodmis.org> The function_graph_entry() function does the work of calling the function graph hook function and the management of the shadow stack, simplifying the work done in the architecture dependent prepare_ftrace_return(). Have superh use the new code, and remove the shadow stack management as well as having to set up the trace structure. This is needed to prepare for a fix of a design bug on how the curr_ret_stack is used. Cc: Yoshinori Sato <ysato@users.sourceforge.jp> Cc: Rich Felker <dalias@libc.org> Cc: linux-sh@vger.kernel.org Cc: stable@kernel.org Fixes: 03274a3ffb449 ("tracing/fgraph: Adjust fgraph depth before calling trace return callback") Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> --- arch/sh/kernel/ftrace.c | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/arch/sh/kernel/ftrace.c b/arch/sh/kernel/ftrace.c index 96dd9f7da250..1b04270e5460 100644 --- a/arch/sh/kernel/ftrace.c +++ b/arch/sh/kernel/ftrace.c @@ -321,8 +321,7 @@ int ftrace_disable_ftrace_graph_caller(void) void prepare_ftrace_return(unsigned long *parent, unsigned long self_addr) { unsigned long old; - int faulted, err; - struct ftrace_graph_ent trace; + int faulted; unsigned long return_hooker = (unsigned long)&return_to_handler; if (unlikely(ftrace_graph_is_dead())) @@ -365,18 +364,7 @@ void prepare_ftrace_return(unsigned long *parent, unsigned long self_addr) return; } - err = ftrace_push_return_trace(old, self_addr, &trace.depth, 0, NULL); - if (err = -EBUSY) { + if (function_graph_enter(old, self_addr, 0, NULL)) __raw_writel(old, parent); - return; - } - - trace.func = self_addr; - - /* Only trace if the calling function expects to */ - if (!ftrace_graph_entry(&trace)) { - current->curr_ret_stack--; - __raw_writel(old, parent); - } } #endif /* CONFIG_FUNCTION_GRAPH_TRACER */ -- 2.19.1
WARNING: multiple messages have this Message-ID (diff)
From: Steven Rostedt <rostedt@goodmis.org> To: linux-kernel@vger.kernel.org Cc: Linus Torvalds <torvalds@linux-foundation.org>, Ingo Molnar <mingo@kernel.org>, Andrew Morton <akpm@linux-foundation.org>, Thomas Gleixner <tglx@linutronix.de>, Peter Zijlstra <peterz@infradead.org>, linux-arch@vger.kernel.org, Joel Fernandes <joel@joelfernandes.org>, Masami Hiramatsu <mhiramat@kernel.org>, Josh Poimboeuf <jpoimboe@redhat.com>, Andy Lutomirski <luto@kernel.org>, Frederic Weisbecker <frederic@kernel.org>, Yoshinori Sato <ysato@users.sourceforge.jp>, Rich Felker <dalias@libc.org>, linux-sh@vger.kernel.org, stable@kernel.org Subject: [for-next][PATCH 12/18] sh/function_graph: Simplify with function_graph_entry() Date: Wed, 21 Nov 2018 19:28:13 -0500 [thread overview] Message-ID: <20181122003333.106149216@goodmis.org> (raw) In-Reply-To: 20181122002801.501220343@goodmis.org From: "Steven Rostedt (VMware)" <rostedt@goodmis.org> The function_graph_entry() function does the work of calling the function graph hook function and the management of the shadow stack, simplifying the work done in the architecture dependent prepare_ftrace_return(). Have superh use the new code, and remove the shadow stack management as well as having to set up the trace structure. This is needed to prepare for a fix of a design bug on how the curr_ret_stack is used. Cc: Yoshinori Sato <ysato@users.sourceforge.jp> Cc: Rich Felker <dalias@libc.org> Cc: linux-sh@vger.kernel.org Cc: stable@kernel.org Fixes: 03274a3ffb449 ("tracing/fgraph: Adjust fgraph depth before calling trace return callback") Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> --- arch/sh/kernel/ftrace.c | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/arch/sh/kernel/ftrace.c b/arch/sh/kernel/ftrace.c index 96dd9f7da250..1b04270e5460 100644 --- a/arch/sh/kernel/ftrace.c +++ b/arch/sh/kernel/ftrace.c @@ -321,8 +321,7 @@ int ftrace_disable_ftrace_graph_caller(void) void prepare_ftrace_return(unsigned long *parent, unsigned long self_addr) { unsigned long old; - int faulted, err; - struct ftrace_graph_ent trace; + int faulted; unsigned long return_hooker = (unsigned long)&return_to_handler; if (unlikely(ftrace_graph_is_dead())) @@ -365,18 +364,7 @@ void prepare_ftrace_return(unsigned long *parent, unsigned long self_addr) return; } - err = ftrace_push_return_trace(old, self_addr, &trace.depth, 0, NULL); - if (err == -EBUSY) { + if (function_graph_enter(old, self_addr, 0, NULL)) __raw_writel(old, parent); - return; - } - - trace.func = self_addr; - - /* Only trace if the calling function expects to */ - if (!ftrace_graph_entry(&trace)) { - current->curr_ret_stack--; - __raw_writel(old, parent); - } } #endif /* CONFIG_FUNCTION_GRAPH_TRACER */ -- 2.19.1
next prev parent reply other threads:[~2018-11-22 0:28 UTC|newest] Thread overview: 53+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-11-22 0:28 [for-next][PATCH 00/18] function_graph: Add separate depth counter to prevent trace corruption Steven Rostedt 2018-11-22 0:28 ` [for-next][PATCH 01/18] function_graph: Create function_graph_enter() to consolidate architecture code Steven Rostedt 2018-11-22 0:28 ` [for-next][PATCH 02/18] x86/function_graph: Simplify with function_graph_entry() Steven Rostedt 2018-11-22 0:28 ` [for-next][PATCH 03/18] ARM: function_graph: " Steven Rostedt 2018-11-22 0:28 ` Steven Rostedt 2018-11-23 7:30 ` Sasha Levin 2018-11-22 0:28 ` [for-next][PATCH 04/18] arm64: " Steven Rostedt 2018-11-22 0:28 ` Steven Rostedt 2018-11-22 0:28 ` Steven Rostedt 2018-11-27 18:07 ` Will Deacon 2018-11-27 18:07 ` Will Deacon 2018-11-27 18:26 ` Steven Rostedt 2018-11-27 18:26 ` Steven Rostedt 2018-11-22 0:28 ` [for-next][PATCH 05/18] microblaze: " Steven Rostedt 2018-11-22 0:28 ` [for-next][PATCH 06/18] MIPS: " Steven Rostedt 2018-11-23 7:30 ` Sasha Levin 2018-11-23 7:30 ` Sasha Levin 2018-11-22 0:28 ` [for-next][PATCH 07/18] nds32: " Steven Rostedt 2018-11-22 0:28 ` [for-next][PATCH 08/18] parisc: " Steven Rostedt [not found] ` <20181123073033.2083020863@mail.kernel.org> 2018-11-23 9:06 ` Helge Deller 2018-11-23 17:12 ` Steven Rostedt 2018-11-23 18:34 ` Sasha Levin 2018-11-23 19:26 ` Steven Rostedt 2018-11-23 20:00 ` Sasha Levin 2018-11-24 18:46 ` Steven Rostedt 2018-12-03 14:54 ` Sasha Levin 2018-11-22 0:28 ` [for-next][PATCH 09/18] powerpc/function_graph: " Steven Rostedt 2018-11-22 0:28 ` Steven Rostedt 2018-11-23 7:30 ` Sasha Levin 2018-11-22 0:28 ` [for-next][PATCH 10/18] riscv/function_graph: " Steven Rostedt 2018-11-26 16:47 ` Palmer Dabbelt 2018-11-22 0:28 ` [for-next][PATCH 11/18] s390/function_graph: " Steven Rostedt 2018-11-22 6:43 ` Martin Schwidefsky 2018-11-23 17:15 ` Steven Rostedt 2018-11-22 0:28 ` Steven Rostedt [this message] 2018-11-22 0:28 ` [for-next][PATCH 12/18] sh/function_graph: " Steven Rostedt 2018-11-22 0:28 ` [for-next][PATCH 13/18] sparc/function_graph: " Steven Rostedt 2018-11-22 0:28 ` Steven Rostedt 2018-11-22 0:28 ` [for-next][PATCH 14/18] function_graph: Make ftrace_push_return_trace() static Steven Rostedt 2018-11-22 0:28 ` [for-next][PATCH 15/18] function_graph: Use new curr_ret_depth to manage depth instead of curr_ret_stack Steven Rostedt 2018-11-22 10:03 ` Peter Zijlstra 2018-11-23 14:14 ` Steven Rostedt 2018-11-22 0:28 ` [for-next][PATCH 16/18] function_graph: Move return callback before update " Steven Rostedt 2018-11-22 0:28 ` [for-next][PATCH 17/18] function_graph: Reverse the order of pushing the ret_stack and the callback Steven Rostedt 2018-11-22 0:28 ` [for-next][PATCH 18/18] function_graph: Have profiler use curr_ret_stack and not depth Steven Rostedt 2018-11-26 5:15 ` [for-next][PATCH 00/18] function_graph: Add separate depth counter to prevent trace corruption Masami Hiramatsu 2018-11-28 20:39 ` Joe Lawrence 2018-11-28 21:00 ` Steven Rostedt 2018-11-29 3:29 ` Steven Rostedt 2018-11-29 4:24 ` Steven Rostedt 2018-11-29 15:08 ` Joe Lawrence 2018-11-29 16:17 ` Steven Rostedt 2018-11-29 16:32 ` Joe Lawrence
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=20181122003333.106149216@goodmis.org \ --to=rostedt@goodmis.org \ --cc=akpm@linux-foundation.org \ --cc=dalias@libc.org \ --cc=frederic@kernel.org \ --cc=joel@joelfernandes.org \ --cc=jpoimboe@redhat.com \ --cc=linux-arch@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-sh@vger.kernel.org \ --cc=luto@kernel.org \ --cc=mhiramat@kernel.org \ --cc=mingo@kernel.org \ --cc=peterz@infradead.org \ --cc=stable@kernel.org \ --cc=tglx@linutronix.de \ --cc=torvalds@linux-foundation.org \ --cc=ysato@users.sourceforge.jp \ /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: linkBe 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.