From: Namhyung Kim <namhyung@kernel.org>
To: Jiri Olsa <jolsa@kernel.org>
Cc: Steven Rostedt <rostedt@goodmis.org>,
lkml <linux-kernel@vger.kernel.org>,
Ingo Molnar <mingo@kernel.org>,
Peter Zijlstra <a.p.zijlstra@chello.nl>,
Arnaldo Carvalho de Melo <acme@kernel.org>
Subject: Re: [PATCH 4/5] ftrace: Make ftrace_hash_rec_enable return update bool
Date: Thu, 17 Mar 2016 09:23:13 +0900 [thread overview]
Message-ID: <20160317002313.GA5194@sejong> (raw)
In-Reply-To: <1458138873-1553-5-git-send-email-jolsa@kernel.org>
Hi Jiri,
On Wed, Mar 16, 2016 at 03:34:32PM +0100, Jiri Olsa wrote:
> Change __ftrace_hash_rec_update to return true in case
> we need to update dynamic ftrace call records. It return
> false in case no update is needed.
>
> Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Acked-by: Namhyung Kim <namhyung@kernel.org>
Thanks,
Namhyung
> ---
> kernel/trace/ftrace.c | 27 +++++++++++++++++----------
> 1 file changed, 17 insertions(+), 10 deletions(-)
>
> diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
> index eca592f977b2..3a9a12215b50 100644
> --- a/kernel/trace/ftrace.c
> +++ b/kernel/trace/ftrace.c
> @@ -1610,7 +1610,7 @@ static bool test_rec_ops_needs_regs(struct dyn_ftrace *rec)
> return keep_regs;
> }
>
> -static void __ftrace_hash_rec_update(struct ftrace_ops *ops,
> +static bool __ftrace_hash_rec_update(struct ftrace_ops *ops,
> int filter_hash,
> bool inc)
> {
> @@ -1618,12 +1618,13 @@ static void __ftrace_hash_rec_update(struct ftrace_ops *ops,
> struct ftrace_hash *other_hash;
> struct ftrace_page *pg;
> struct dyn_ftrace *rec;
> + bool update = false;
> int count = 0;
> int all = 0;
>
> /* Only update if the ops has been registered */
> if (!(ops->flags & FTRACE_OPS_FL_ENABLED))
> - return;
> + return false;
>
> /*
> * In the filter_hash case:
> @@ -1650,7 +1651,7 @@ static void __ftrace_hash_rec_update(struct ftrace_ops *ops,
> * then there's nothing to do.
> */
> if (ftrace_hash_empty(hash))
> - return;
> + return false;
> }
>
> do_for_each_ftrace_rec(pg, rec) {
> @@ -1694,7 +1695,7 @@ static void __ftrace_hash_rec_update(struct ftrace_ops *ops,
> if (inc) {
> rec->flags++;
> if (FTRACE_WARN_ON(ftrace_rec_count(rec) == FTRACE_REF_MAX))
> - return;
> + return false;
>
> /*
> * If there's only a single callback registered to a
> @@ -1720,7 +1721,7 @@ static void __ftrace_hash_rec_update(struct ftrace_ops *ops,
> rec->flags |= FTRACE_FL_REGS;
> } else {
> if (FTRACE_WARN_ON(ftrace_rec_count(rec) == 0))
> - return;
> + return false;
> rec->flags--;
>
> /*
> @@ -1753,22 +1754,28 @@ static void __ftrace_hash_rec_update(struct ftrace_ops *ops,
> */
> }
> count++;
> +
> + /* Must match FTRACE_UPDATE_CALLS in ftrace_modify_all_code() */
> + update |= ftrace_test_record(rec, 1) != FTRACE_UPDATE_IGNORE;
> +
> /* Shortcut, if we handled all records, we are done. */
> if (!all && count == hash->count)
> - return;
> + return update;
> } while_for_each_ftrace_rec();
> +
> + return update;
> }
>
> -static void ftrace_hash_rec_disable(struct ftrace_ops *ops,
> +static bool ftrace_hash_rec_disable(struct ftrace_ops *ops,
> int filter_hash)
> {
> - __ftrace_hash_rec_update(ops, filter_hash, 0);
> + return __ftrace_hash_rec_update(ops, filter_hash, 0);
> }
>
> -static void ftrace_hash_rec_enable(struct ftrace_ops *ops,
> +static bool ftrace_hash_rec_enable(struct ftrace_ops *ops,
> int filter_hash)
> {
> - __ftrace_hash_rec_update(ops, filter_hash, 1);
> + return __ftrace_hash_rec_update(ops, filter_hash, 1);
> }
>
> static void ftrace_hash_rec_update_modify(struct ftrace_ops *ops,
> --
> 2.4.3
>
next prev parent reply other threads:[~2016-03-17 0:23 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-16 14:34 [PATCHv2 0/5] ftrace perf: Fixes and speedup Jiri Olsa
2016-03-16 14:34 ` [PATCH 1/5] ftrace perf: Check sample types only for sampling events Jiri Olsa
2016-03-18 14:27 ` Steven Rostedt
2016-03-31 9:25 ` [tip:perf/core] ftrace/perf: " tip-bot for Jiri Olsa
2016-03-16 14:34 ` [PATCH 2/5] ftrace perf: Move exclude_kernel tracepoint check to init event Jiri Olsa
2016-03-18 14:28 ` Steven Rostedt
2016-03-23 10:41 ` Peter Zijlstra
2016-03-24 9:56 ` Jiri Olsa
2016-03-24 10:49 ` Peter Zijlstra
2016-03-24 12:25 ` Jiri Olsa
2016-03-24 13:00 ` Peter Zijlstra
2016-03-24 13:30 ` Jiri Olsa
2016-03-16 14:34 ` [PATCH 3/5] ftrace perf: Use ftrace_ops::private to store event pointer Jiri Olsa
2016-03-18 14:28 ` Steven Rostedt
2016-03-23 14:26 ` Peter Zijlstra
2016-03-24 9:47 ` Jiri Olsa
2016-03-24 10:40 ` Peter Zijlstra
2016-03-16 14:34 ` [PATCH 4/5] ftrace: Make ftrace_hash_rec_enable return update bool Jiri Olsa
2016-03-17 0:23 ` Namhyung Kim [this message]
2016-03-16 14:34 ` [PATCH 5/5] ftrace: Update dynamic ftrace calls only if necessary Jiri Olsa
2016-03-17 0:25 ` Namhyung Kim
2016-03-18 14:27 ` Steven Rostedt
-- strict thread matches above, loose matches on Subject: below --
2016-03-09 20:46 [RFC 0/5] ftrace perf: Fixes and speedup Jiri Olsa
2016-03-09 20:46 ` [PATCH 4/5] ftrace: Make ftrace_hash_rec_enable return update bool Jiri Olsa
2016-03-11 14:28 ` Namhyung Kim
2016-03-11 18:15 ` Jiri Olsa
2016-03-12 8:35 ` Namhyung Kim
2016-03-15 19:43 ` 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=20160317002313.GA5194@sejong \
--to=namhyung@kernel.org \
--cc=a.p.zijlstra@chello.nl \
--cc=acme@kernel.org \
--cc=jolsa@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--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.