From: Lai Jiangshan <laijs@cn.fujitsu.com>
To: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>, LKML <linux-kernel@vger.kernel.org>,
Steven Rostedt <rostedt@goodmis.org>,
Li Zefan <lizf@cn.fujitsu.com>
Subject: Re: [RFC PATCH 05/10] ftrace: Drop buffer check in function profiler callbacks
Date: Mon, 25 Jan 2010 14:17:29 +0800 [thread overview]
Message-ID: <4B5D3779.2040807@cn.fujitsu.com> (raw)
In-Reply-To: <1264122982-1553-6-git-send-regression-fweisbec@gmail.com>
Frederic Weisbecker wrote:
> Drop the null check on hlist->hash. It is wasteful because
> we don't register the tracer if the buffer allocation failed,
> and the memory barrier in register_ftrace_graph() ensure it
> is visible to the callbacks right away.
>
When it is on a cpu which is just came up, hlist->hash is not
allocated either.
See ftrace_profile_init().
function_profile_call(), profile_graph_entry() and profile_graph_return()
on a just online cpu are wasteful. I think we need call
ftrace_profile_init_cpu()(if ftrace_profile_enabled=1) when CPU_UP_PREPARE.
> Also we know the tracing callbacks won't be called after
> register_ftrace_graph(), so subsequent buffer resets are safe
> too.
>
> Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
> Cc: Steven Rostedt <rostedt@goodmis.org>
> Cc: Li Zefan <lizf@cn.fujitsu.com>
> Cc: Lai Jiangshan <laijs@cn.fujitsu.com>
> ---
> kernel/trace/ftrace.c | 5 -----
> 1 files changed, 0 insertions(+), 5 deletions(-)
>
> diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
> index 3cdb35e..dfd8f7c 100644
> --- a/kernel/trace/ftrace.c
> +++ b/kernel/trace/ftrace.c
> @@ -384,8 +384,6 @@ function_profile_call(unsigned long ip, unsigned long parent_ip)
> local_irq_save(flags);
>
> hlist = &__get_cpu_var(func_hlist_cpu);
> - if (!hlist->hash)
> - goto out;
>
> rec = function_find_hlist_node(hlist, ip);
> if (!rec) {
> @@ -415,8 +413,6 @@ static void profile_graph_return(struct ftrace_graph_ret *trace)
>
> local_irq_save(flags);
> hlist = &__get_cpu_var(func_hlist_cpu);
> - if (!hlist->hash)
> - goto out;
>
> calltime = trace->rettime - trace->calltime;
>
> @@ -439,7 +435,6 @@ static void profile_graph_return(struct ftrace_graph_ret *trace)
> if (rec)
> rec->time += calltime;
>
> - out:
> local_irq_restore(flags);
> }
>
next prev parent reply other threads:[~2010-01-25 6:19 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-01-22 1:16 [RFC PATCH 00/10] Ftrace functions hashlist Frederic Weisbecker
2010-01-22 1:16 ` [RFC PATCH 01/10] ftrace: Generalize the function hashlist from function profiler Frederic Weisbecker
2010-01-22 1:16 ` [RFC PATCH 02/10] ftrace: Ensure tracing has really stopped before leaving unregister_ftrace_graph Frederic Weisbecker
2010-01-22 1:51 ` Steven Rostedt
2010-01-22 2:04 ` Frederic Weisbecker
2010-01-22 1:16 ` [RFC PATCH 03/10] ftrace: Drop the ftrace_profile_enabled checks in tracing hot path Frederic Weisbecker
2010-01-22 2:05 ` Steven Rostedt
2010-01-22 2:28 ` Mathieu Desnoyers
2010-01-22 3:12 ` Steven Rostedt
2010-01-22 4:09 ` Mathieu Desnoyers
2010-01-22 4:52 ` Steven Rostedt
2010-01-22 12:34 ` Mathieu Desnoyers
2010-01-22 14:54 ` Masami Hiramatsu
2010-01-25 20:58 ` Frederic Weisbecker
2010-01-25 22:14 ` Masami Hiramatsu
2010-01-26 0:41 ` Frederic Weisbecker
2010-01-26 1:13 ` Mathieu Desnoyers
2010-01-26 1:37 ` Masami Hiramatsu
2010-01-27 21:55 ` [PATCH tracing/kprobes] kprobes: Disable booster when CONFIG_PREEMPT=y Masami Hiramatsu
2010-01-28 1:08 ` Mathieu Desnoyers
2010-01-28 4:21 ` Ananth N Mavinakayanahalli
2010-01-29 9:21 ` Ingo Molnar
2010-01-29 11:30 ` Peter Zijlstra
2010-01-29 14:52 ` Masami Hiramatsu
2010-01-29 17:08 ` Mathieu Desnoyers
2010-01-29 17:15 ` Peter Zijlstra
2010-01-29 17:27 ` Mathieu Desnoyers
2010-01-29 17:32 ` Masami Hiramatsu
2010-01-22 2:43 ` [RFC PATCH 03/10] ftrace: Drop the ftrace_profile_enabled checks in tracing hot path Frederic Weisbecker
2010-01-22 3:05 ` Steven Rostedt
2010-01-25 20:52 ` Frederic Weisbecker
2010-01-22 1:16 ` [RFC PATCH 04/10] ftrace: Ensure buffers are visibles to tracing callbacks right away Frederic Weisbecker
2010-01-22 1:16 ` [RFC PATCH 05/10] ftrace: Drop buffer check in function profiler callbacks Frederic Weisbecker
2010-01-25 6:17 ` Lai Jiangshan [this message]
2010-01-30 20:47 ` Frederic Weisbecker
2010-01-22 1:16 ` [RFC PATCH 06/10] ftrace: Release the function hlist if we don't need it anymore Frederic Weisbecker
2010-01-25 6:41 ` Lai Jiangshan
2010-01-30 21:14 ` Frederic Weisbecker
2010-01-22 1:16 ` [RFC PATCH 07/10] ftrace: Make the function hashlist concurrently usable Frederic Weisbecker
2010-01-22 1:16 ` [PATCH 08/10] tracing: Simplify test for function_graph tracing Frederic Weisbecker
2010-01-22 1:16 ` [RFC PATCH 09/10] tracing: Use the hashlist for graph function Frederic Weisbecker
2010-01-25 8:50 ` Lai Jiangshan
2010-01-30 21:19 ` Frederic Weisbecker
2010-01-22 1:16 ` [RFC PATCH 10/10] ftrace: Factorize search and insertion in the function hashlist Frederic Weisbecker
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=4B5D3779.2040807@cn.fujitsu.com \
--to=laijs@cn.fujitsu.com \
--cc=fweisbec@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=lizf@cn.fujitsu.com \
--cc=mingo@elte.hu \
--cc=rostedt@goodmis.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.