Em Fri, Sep 04, 2015 at 10:45:43AM -0400, kan.li...@intel.com escreveu: > From: Kan Liang <kan.li...@intel.com> > > This patch enable perf report to sort by processor socket > > $ perf report --stdio --sort socket,comm,dso,symbol > # To display the perf.data header info, please use > --header/--header-only options. > # > # > # Total Lost Samples: 0 > # > # Samples: 686 of event 'cycles' > # Event count (approx.): 349215462 > # > # Overhead SOCKET Command Shared Object Symbol > # ........ ...... ......... ................ > .................................
So this works in 'perf top' only for the first screen rendering, when it refreshes we lose the "SOCKET" header (why all caps?) and the colum stops being %03d and instead becomes %d, I am checking now. - Arnaldo > # > 97.05% 000 test test [.] plusB_c > 0.98% 000 test test [.] plusA_c > 0.93% 001 perf [kernel.vmlinux] [k] > smp_call_function_single > 0.19% 001 perf [kernel.vmlinux] [k] page_fault > 0.19% 001 swapper [kernel.vmlinux] [k] pm_qos_request > 0.16% 000 test [kernel.vmlinux] [k] add_mm_counter_fast > > Signed-off-by: Kan Liang <kan.li...@intel.com> > --- > tools/perf/Documentation/perf-report.txt | 3 ++- > tools/perf/util/hist.h | 1 + > tools/perf/util/sort.c | 22 ++++++++++++++++++++++ > tools/perf/util/sort.h | 1 + > 4 files changed, 26 insertions(+), 1 deletion(-) > > diff --git a/tools/perf/Documentation/perf-report.txt > b/tools/perf/Documentation/perf-report.txt > index 9c7981b..92361a7 100644 > --- a/tools/perf/Documentation/perf-report.txt > +++ b/tools/perf/Documentation/perf-report.txt > @@ -68,7 +68,7 @@ OPTIONS > --sort=:: > Sort histogram entries by given key(s) - multiple keys can be specified > in CSV format. Following sort keys are available: > - pid, comm, dso, symbol, parent, cpu, srcline, weight, local_weight. > + pid, comm, dso, symbol, parent, cpu, socket, srcline, weight, > local_weight. > > Each key has following meaning: > > @@ -79,6 +79,7 @@ OPTIONS > - parent: name of function matched to the parent regex filter. Unmatched > entries are displayed as "[other]". > - cpu: cpu number the task ran at the time of sample > + - socket: processor socket number the task ran at the time of sample > - srcline: filename and line number executed at the time of sample. The > DWARF debugging info must be provided. > - srcfile: file name of the source file of the same. Requires dwarf > diff --git a/tools/perf/util/hist.h b/tools/perf/util/hist.h > index de6d58e..5d04d28 100644 > --- a/tools/perf/util/hist.h > +++ b/tools/perf/util/hist.h > @@ -29,6 +29,7 @@ enum hist_column { > HISTC_COMM, > HISTC_PARENT, > HISTC_CPU, > + HISTC_SOCKET, > HISTC_SRCLINE, > HISTC_SRCFILE, > HISTC_MISPREDICT, > diff --git a/tools/perf/util/sort.c b/tools/perf/util/sort.c > index a97bcee..c4a32b9 100644 > --- a/tools/perf/util/sort.c > +++ b/tools/perf/util/sort.c > @@ -421,6 +421,27 @@ struct sort_entry sort_cpu = { > .se_width_idx = HISTC_CPU, > }; > > +/* --sort socket */ > + > +static int64_t > +sort__socket_cmp(struct hist_entry *left, struct hist_entry *right) > +{ > + return right->socket - left->socket; > +} > + > +static int hist_entry__socket_snprintf(struct hist_entry *he, char *bf, > + size_t size, unsigned int width) > +{ > + return repsep_snprintf(bf, size, "%*.*d", width, width-3, he->socket); > +} > + > +struct sort_entry sort_socket = { > + .se_header = "SOCKET", > + .se_cmp = sort__socket_cmp, > + .se_snprintf = hist_entry__socket_snprintf, > + .se_width_idx = HISTC_SOCKET, > +}; > + > /* sort keys for branch stacks */ > > static int64_t > @@ -1248,6 +1269,7 @@ static struct sort_dimension common_sort_dimensions[] = > { > DIM(SORT_SYM, "symbol", sort_sym), > DIM(SORT_PARENT, "parent", sort_parent), > DIM(SORT_CPU, "cpu", sort_cpu), > + DIM(SORT_SOCKET, "socket", sort_socket), > DIM(SORT_SRCLINE, "srcline", sort_srcline), > DIM(SORT_SRCFILE, "srcfile", sort_srcfile), > DIM(SORT_LOCAL_WEIGHT, "local_weight", sort_local_weight), > diff --git a/tools/perf/util/sort.h b/tools/perf/util/sort.h > index 7cf1cf7..654ac8a 100644 > --- a/tools/perf/util/sort.h > +++ b/tools/perf/util/sort.h > @@ -173,6 +173,7 @@ enum sort_type { > SORT_SYM, > SORT_PARENT, > SORT_CPU, > + SORT_SOCKET, > SORT_SRCLINE, > SORT_SRCFILE, > SORT_LOCAL_WEIGHT, > -- > 1.8.3.1 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/