Re: [PATCH 1/2] perf probe: Helper function to check if probe with variable

From: Masami Hiramatsu
Date: Thu Aug 25 2016 - 08:33:31 EST


On Wed, 3 Aug 2016 14:28:44 +0530
Ravi Bangoria <ravi.bangoria@xxxxxxxxxxxxxxxxxx> wrote:

> Introduce helper function instead of inline code and replace hardcoded
> strings "$vars" and "$params" with their corresponding macros.
>
> perf_probe_with_var is not declared as static since it will be called
> from different file in subsequent patch.
>

Looks good to me :)

> Signed-off-by: Ravi Bangoria <ravi.bangoria@xxxxxxxxxxxxxxxxxx>

Acked-by: Masami Hiramatsu <mhiramat@xxxxxxxxxx>

Thanks!

> ---
> tools/perf/util/probe-event.c | 22 +++++++++++++++-------
> tools/perf/util/probe-event.h | 2 ++
> 2 files changed, 17 insertions(+), 7 deletions(-)
>
> diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c
> index 953dc1a..bc9317e 100644
> --- a/tools/perf/util/probe-event.c
> +++ b/tools/perf/util/probe-event.c
> @@ -1592,19 +1592,27 @@ out:
> return ret;
> }
>
> +/* Returns true if *any* ARG is either C variable, $params or $vars. */
> +bool perf_probe_with_var(struct perf_probe_event *pev)
> +{
> + int i = 0;
> +
> + for (i = 0; i < pev->nargs; i++)
> + if (is_c_varname(pev->args[i].var) ||
> + !strcmp(pev->args[i].var, PROBE_ARG_PARAMS) ||
> + !strcmp(pev->args[i].var, PROBE_ARG_VARS))
> + return true;
> + return false;
> +}
> +
> /* Return true if this perf_probe_event requires debuginfo */
> bool perf_probe_event_need_dwarf(struct perf_probe_event *pev)
> {
> - int i;
> -
> if (pev->point.file || pev->point.line || pev->point.lazy_line)
> return true;
>
> - for (i = 0; i < pev->nargs; i++)
> - if (is_c_varname(pev->args[i].var) ||
> - !strcmp(pev->args[i].var, "$params") ||
> - !strcmp(pev->args[i].var, "$vars"))
> - return true;
> + if (perf_probe_with_var(pev))
> + return true;
>
> return false;
> }
> diff --git a/tools/perf/util/probe-event.h b/tools/perf/util/probe-event.h
> index e18ea9f..4d1139b 100644
> --- a/tools/perf/util/probe-event.h
> +++ b/tools/perf/util/probe-event.h
> @@ -128,6 +128,8 @@ char *synthesize_perf_probe_point(struct perf_probe_point *pp);
> int perf_probe_event__copy(struct perf_probe_event *dst,
> struct perf_probe_event *src);
>
> +bool perf_probe_with_var(struct perf_probe_event *pev);
> +
> /* Check the perf_probe_event needs debuginfo */
> bool perf_probe_event_need_dwarf(struct perf_probe_event *pev);
>
> --
> 2.5.5
>


--
Masami Hiramatsu <mhiramat@xxxxxxxxxx>