Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1572124 > unrolled thread

Re: [PATCH 1/2] perf diff: Fix segfault on perf diff -o N option

Started byNamhyung Kim <namhyung@kernel.org>
First post2017-02-02 03:50 +0100
Last post2017-02-02 15:40 +0100
Articles 2 — 2 participants

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: [PATCH 1/2] perf diff: Fix segfault on perf diff -o N option Namhyung Kim <namhyung@kernel.org> - 2017-02-02 03:50 +0100
    Re: [PATCH 1/2] perf diff: Fix segfault on perf diff -o N option Arnaldo Carvalho de Melo <acme@kernel.org> - 2017-02-02 15:40 +0100

#1572124 — Re: [PATCH 1/2] perf diff: Fix segfault on perf diff -o N option

FromNamhyung Kim <namhyung@kernel.org>
Date2017-02-02 03:50 +0100
SubjectRe: [PATCH 1/2] perf diff: Fix segfault on perf diff -o N option
Message-ID<t6fDb-68d-1@gated-at.bofh.it>
Hi Arnaldo,

Could you please consider merging it to the perf/urgent?

Thanks,
Namhyung


On Wed, Jan 18, 2017 at 02:14:56PM +0900, Namhyung Kim wrote:
> The -o/--order option is to select column number to sort a diff result.
> It does the job by adding a hpp field at the beginning of the sort list.
> But it should not be added to the output field list as it has no
> callbacks required by a output field.
> 
> During the setup_sorting(), the perf_hpp__setup_output_field() appends
> given sort keys to the output field if it's not there already.
> 
> Originally it was checked by the fmt->list being non-empty.  But commit
> 3f931f2c4274 changed it to check the ->equal callback.  Anyway we don't
> need to add the pseudo hpp field to the output field list since it won't
> be used for output.  So just skip fields if they have no ->color or
>  ->entry callbacks.
> 
> Fixes: 3f931f2c4274 ("perf hists: Make hpp setup function generic")
> Signed-off-by: Namhyung Kim <namhyung@kernel.org>
> ---
>  tools/perf/ui/hist.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/tools/perf/ui/hist.c b/tools/perf/ui/hist.c
> index 37388397b5bc..4ec79b2f9416 100644
> --- a/tools/perf/ui/hist.c
> +++ b/tools/perf/ui/hist.c
> @@ -560,6 +560,10 @@ void perf_hpp__setup_output_field(struct perf_hpp_list *list)
>  	perf_hpp_list__for_each_sort_list(list, fmt) {
>  		struct perf_hpp_fmt *pos;
>  
> +		/* skip sort-only fields ("sort_compute" in perf diff) */
> +		if (!fmt->entry && !fmt->color)
> +			continue;
> +
>  		perf_hpp_list__for_each_format(list, pos) {
>  			if (fmt_equal(fmt, pos))
>  				goto next;
> -- 
> 2.11.0
> 

[toc] | [next] | [standalone]


#1572412

FromArnaldo Carvalho de Melo <acme@kernel.org>
Date2017-02-02 15:40 +0100
Message-ID<t6qIi-5eS-29@gated-at.bofh.it>
In reply to#1572124
Em Thu, Feb 02, 2017 at 11:43:03AM +0900, Namhyung Kim escreveu:
> Hi Arnaldo,
> 
> Could you please consider merging it to the perf/urgent?

Fell thru the cracks, applied to perf/urgent, thanks for the reminder!

- Arnaldo
 
> Thanks,
> Namhyung
> 
> 
> On Wed, Jan 18, 2017 at 02:14:56PM +0900, Namhyung Kim wrote:
> > The -o/--order option is to select column number to sort a diff result.
> > It does the job by adding a hpp field at the beginning of the sort list.
> > But it should not be added to the output field list as it has no
> > callbacks required by a output field.
> > 
> > During the setup_sorting(), the perf_hpp__setup_output_field() appends
> > given sort keys to the output field if it's not there already.
> > 
> > Originally it was checked by the fmt->list being non-empty.  But commit
> > 3f931f2c4274 changed it to check the ->equal callback.  Anyway we don't
> > need to add the pseudo hpp field to the output field list since it won't
> > be used for output.  So just skip fields if they have no ->color or
> >  ->entry callbacks.
> > 
> > Fixes: 3f931f2c4274 ("perf hists: Make hpp setup function generic")
> > Signed-off-by: Namhyung Kim <namhyung@kernel.org>
> > ---
> >  tools/perf/ui/hist.c | 4 ++++
> >  1 file changed, 4 insertions(+)
> > 
> > diff --git a/tools/perf/ui/hist.c b/tools/perf/ui/hist.c
> > index 37388397b5bc..4ec79b2f9416 100644
> > --- a/tools/perf/ui/hist.c
> > +++ b/tools/perf/ui/hist.c
> > @@ -560,6 +560,10 @@ void perf_hpp__setup_output_field(struct perf_hpp_list *list)
> >  	perf_hpp_list__for_each_sort_list(list, fmt) {
> >  		struct perf_hpp_fmt *pos;
> >  
> > +		/* skip sort-only fields ("sort_compute" in perf diff) */
> > +		if (!fmt->entry && !fmt->color)
> > +			continue;
> > +
> >  		perf_hpp_list__for_each_format(list, pos) {
> >  			if (fmt_equal(fmt, pos))
> >  				goto next;
> > -- 
> > 2.11.0
> > 

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web