Re: [PATCH 02/13] perf hist: Save raw_data/size for tracepoint events

From: Arnaldo Carvalho de Melo
Date: Wed Dec 23 2015 - 16:43:44 EST


Em Wed, Dec 23, 2015 at 02:06:59AM +0900, Namhyung Kim escreveu:
> The raw_data and raw_size fields are to provide tracepoint specific
> information. They will be used by dynamic sort keys later.
>
> Signed-off-by: Namhyung Kim <namhyung@xxxxxxxxxx>
> ---
> tools/perf/util/hist.c | 4 ++++
> tools/perf/util/sort.h | 2 ++
> 2 files changed, 6 insertions(+)
>
> diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c
> index 039bb91d0a92..c0c92a3daa69 100644
> --- a/tools/perf/util/hist.c
> +++ b/tools/perf/util/hist.c
> @@ -487,6 +487,8 @@ struct hist_entry *__hists__add_entry(struct hists *hists,
> .branch_info = bi,
> .mem_info = mi,
> .transaction = sample->transaction,
> + .raw_data = sample->raw_data,
> + .raw_size = sample->raw_size,

So, sample->raw_data is just a pointer to perf_event_sample->array, that
may be overwritten, no?

Looking at the other patches.

- Arnaldo

> };
>
> return hists__findnew_entry(hists, &entry, al, sample_self);
> @@ -801,6 +803,8 @@ iter_add_next_cumulative_entry(struct hist_entry_iter *iter,
> .sym = al->sym,
> },
> .parent = iter->parent,
> + .raw_data = sample->raw_data,
> + .raw_size = sample->raw_size,
> };
> int i;
> struct callchain_cursor cursor;
> diff --git a/tools/perf/util/sort.h b/tools/perf/util/sort.h
> index 86f05e7a5566..d29898708dbd 100644
> --- a/tools/perf/util/sort.h
> +++ b/tools/perf/util/sort.h
> @@ -122,6 +122,8 @@ struct hist_entry {
> struct branch_info *branch_info;
> struct hists *hists;
> struct mem_info *mem_info;
> + void *raw_data;
> + u32 raw_size;
> struct callchain_root callchain[0]; /* must be last member */
> };
>
> --
> 2.6.4
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/