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

2016-08-25 Thread Masami Hiramatsu
On Wed,  3 Aug 2016 14:28:44 +0530
Ravi Bangoria  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 

Acked-by: Masami Hiramatsu 

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 


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

2016-08-25 Thread Masami Hiramatsu
On Wed,  3 Aug 2016 14:28:44 +0530
Ravi Bangoria  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 

Acked-by: Masami Hiramatsu 

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 


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

2016-08-03 Thread Ravi Bangoria
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.

Signed-off-by: Ravi Bangoria 
---
 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



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

2016-08-03 Thread Ravi Bangoria
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.

Signed-off-by: Ravi Bangoria 
---
 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