Subject: [PATCH 1/2] [BUGFIX] perf probe: Fix to copy the type for raw parameters

Copy type field if it is for raw parameters.
Without this fix, perf probe drops the type if user passes it
for raw parameters (e.g. %ax:u32 will be converted to %ax).

Signed-off-by: Masami Hiramatsu <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Paul Mackerras <[email protected]>
Cc: Ingo Molnar <[email protected]>
Cc: Arnaldo Carvalho de Melo <[email protected]>
Cc: Frederic Weisbecker <[email protected]>
Cc: [email protected]
---

tools/perf/util/probe-finder.c | 8 ++++++--
1 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/tools/perf/util/probe-finder.c b/tools/perf/util/probe-finder.c
index 840f1aa..b69d194 100644
--- a/tools/perf/util/probe-finder.c
+++ b/tools/perf/util/probe-finder.c
@@ -706,8 +706,12 @@ static int find_variable(Dwarf_Die *sp_die, struct probe_finder *pf)
pf->tvar->value = strdup(pf->pvar->var);
if (pf->tvar->value == NULL)
return -ENOMEM;
- else
- return 0;
+ if (pf->pvar->type) {
+ pf->tvar->type = strdup(pf->pvar->type);
+ if (pf->tvar->type == NULL)
+ return -ENOMEM;
+ }
+ return 0;
}

pr_debug("Searching '%s' variable in context.\n",


--
Masami HIRAMATSU
2nd Research Dept.
Hitachi, Ltd., Systems Development Laboratory
E-mail: [email protected]


Subject: Re: [PATCH 1/2] [BUGFIX] perf probe: Fix to copy the type for raw parameters

Masami Hiramatsu wrote:
> Copy type field if it is for raw parameters.
> Without this fix, perf probe drops the type if user passes it
> for raw parameters (e.g. %ax:u32 will be converted to %ax).

Hi Arnaldo,

Could you pick these patches?

Thank you,

>
> Signed-off-by: Masami Hiramatsu <[email protected]>
> Cc: Peter Zijlstra <[email protected]>
> Cc: Paul Mackerras <[email protected]>
> Cc: Ingo Molnar <[email protected]>
> Cc: Arnaldo Carvalho de Melo <[email protected]>
> Cc: Frederic Weisbecker <[email protected]>
> Cc: [email protected]
> ---
>
> tools/perf/util/probe-finder.c | 8 ++++++--
> 1 files changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/tools/perf/util/probe-finder.c b/tools/perf/util/probe-finder.c
> index 840f1aa..b69d194 100644
> --- a/tools/perf/util/probe-finder.c
> +++ b/tools/perf/util/probe-finder.c
> @@ -706,8 +706,12 @@ static int find_variable(Dwarf_Die *sp_die, struct probe_finder *pf)
> pf->tvar->value = strdup(pf->pvar->var);
> if (pf->tvar->value == NULL)
> return -ENOMEM;
> - else
> - return 0;
> + if (pf->pvar->type) {
> + pf->tvar->type = strdup(pf->pvar->type);
> + if (pf->tvar->type == NULL)
> + return -ENOMEM;
> + }
> + return 0;
> }
>
> pr_debug("Searching '%s' variable in context.\n",
>
>

2010-08-06 14:10:57

by Arnaldo Carvalho de Melo

[permalink] [raw]
Subject: Re: [PATCH 1/2] [BUGFIX] perf probe: Fix to copy the type for raw parameters

Em Fri, Aug 06, 2010 at 04:17:59PM +0900, Masami Hiramatsu escreveu:
> Masami Hiramatsu wrote:
> > Copy type field if it is for raw parameters.
> > Without this fix, perf probe drops the type if user passes it
> > for raw parameters (e.g. %ax:u32 will be converted to %ax).
> Hi Arnaldo,
>
> Could you pick these patches?

Sure.

- Arnaldo

Subject: [tip:perf/core] perf probe: Fix to copy the type for raw parameters

Commit-ID: 58432e1f3625ef22b347ec8f9487e1852aa9ad67
Gitweb: http://git.kernel.org/tip/58432e1f3625ef22b347ec8f9487e1852aa9ad67
Author: Masami Hiramatsu <[email protected]>
AuthorDate: Tue, 3 Aug 2010 11:11:36 +0900
Committer: Arnaldo Carvalho de Melo <[email protected]>
CommitDate: Fri, 6 Aug 2010 16:25:56 -0300

perf probe: Fix to copy the type for raw parameters

Copy type field if it is for raw parameters.
Without this fix, perf probe drops the type if user passes it
for raw parameters (e.g. %ax:u32 will be converted to %ax).

Cc: Peter Zijlstra <[email protected]>
Cc: Paul Mackerras <[email protected]>
Cc: Ingo Molnar <[email protected]>
Cc: Frederic Weisbecker <[email protected]>
Signed-off-by: Masami Hiramatsu <[email protected]>
LKML-Reference: <[email protected]>
Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
---
tools/perf/util/probe-finder.c | 8 ++++++--
1 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/tools/perf/util/probe-finder.c b/tools/perf/util/probe-finder.c
index 6c7750d..5251366 100644
--- a/tools/perf/util/probe-finder.c
+++ b/tools/perf/util/probe-finder.c
@@ -705,8 +705,12 @@ static int find_variable(Dwarf_Die *sp_die, struct probe_finder *pf)
pf->tvar->value = strdup(pf->pvar->var);
if (pf->tvar->value == NULL)
return -ENOMEM;
- else
- return 0;
+ if (pf->pvar->type) {
+ pf->tvar->type = strdup(pf->pvar->type);
+ if (pf->tvar->type == NULL)
+ return -ENOMEM;
+ }
+ return 0;
}

pr_debug("Searching '%s' variable in context.\n",