Messages in this thread | | | From | Namhyung Kim <> | Subject | Re: [PATCH 4/5] perf diff: Use internal rb tree for compute resort | Date | Fri, 07 Dec 2012 17:53:10 +0900 |
| |
On Thu, 6 Dec 2012 17:51:36 +0100, Jiri Olsa wrote: > On Fri, Dec 07, 2012 at 12:09:40AM +0900, Namhyung Kim wrote: >> From: Namhyung Kim <namhyung.kim@lge.com> >> >> There's no reason to run hists_compute_resort() using output tree. >> Convert it to use internal tree so that it can remove unnecessary >> _output_resort. > > I have another patch in queue ommiting dummy entries to display > number in the compute column, so we don't have confusing 'sorted' > outputs like: > > [jolsa@krava perf]$ ./perf diff -c+delta > # Event 'cycles:u' > # > # Baseline Delta Shared Object Symbol > # ........ ....... ............. .......................... > # > 17.92% -17.92% libc-2.15.so [.] _IO_link_in > +77.54% libc-2.15.so [.] __fprintf_chk > 15.64% -15.64% libc-2.15.so [.] _dl_addr > 0.08% +0.61% ld-2.15.so [.] _start > 12.16% -12.16% ld-2.15.so [.] dl_main > 15.39% -15.39% ld-2.15.so [.] _dl_check_map_versions > 38.81% -17.04% [kernel.kallsyms] [k] page_fault > > just in case anyone actualy tries and wonders ;)
Sounds great!
> > We need following change as well, because output resort does > also col width recalc. Please add it if you respin, or I can > send it later.
Okay, I'll resend a new version after getting a reply on the patch 2/5 from Arnaldo. It'd be better if you send me a formal patch for this.
> > other than that: > > Acked-by: Jiri Olsa <jolsa@redhat.com>
Thanks, Namhyung
> > --- > diff --git a/tools/perf/builtin-diff.c b/tools/perf/builtin-diff.c > index f66968e..6f56f78 100644 > --- a/tools/perf/builtin-diff.c > +++ b/tools/perf/builtin-diff.c > @@ -425,12 +425,15 @@ static void hists__compute_resort(struct hists *hists) > hists->entries = RB_ROOT; > next = rb_first(root); > > + hists__reset_col_len(hists); > + > while (next != NULL) { > struct hist_entry *he; > > he = rb_entry(next, struct hist_entry, rb_node_in); > next = rb_next(&he->rb_node_in); > > + hists__calc_col_len(hists, he); > insert_hist_entry_by_compute(&hists->entries, he, compute); > } > }
| |