Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1312820 > unrolled thread
| Started by | Andi Kleen <andi@firstfloor.org> |
|---|---|
| First post | 2016-01-20 03:30 +0100 |
| Last post | 2016-01-27 01:00 +0100 |
| Articles | 7 — 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.
[PATCH 3/9] perf, tools, stat: Move noise/running printing into printout Andi Kleen <andi@firstfloor.org> - 2016-01-20 03:30 +0100
Re: [PATCH 3/9] perf, tools, stat: Move noise/running printing into printout Jiri Olsa <jolsa@redhat.com> - 2016-01-22 10:50 +0100
Re: [PATCH 3/9] perf, tools, stat: Move noise/running printing into printout Andi Kleen <andi@firstfloor.org> - 2016-01-23 04:50 +0100
Re: [PATCH 3/9] perf, tools, stat: Move noise/running printing into printout Jiri Olsa <jolsa@redhat.com> - 2016-01-23 17:30 +0100
Re: [PATCH 3/9] perf, tools, stat: Move noise/running printing into printout Andi Kleen <andi@firstfloor.org> - 2016-01-27 01:00 +0100
Re: [PATCH 3/9] perf, tools, stat: Move noise/running printing into printout Jiri Olsa <jolsa@redhat.com> - 2016-01-28 10:50 +0100
Re: [PATCH 3/9] perf, tools, stat: Move noise/running printing into printout Andi Kleen <andi@firstfloor.org> - 2016-01-27 01:00 +0100
| From | Andi Kleen <andi@firstfloor.org> |
|---|---|
| Date | 2016-01-20 03:30 +0100 |
| Subject | [PATCH 3/9] perf, tools, stat: Move noise/running printing into printout |
| Message-ID | <qSQH0-8jG-9@gated-at.bofh.it> |
From: Andi Kleen <ak@linux.intel.com>
Move the running/noise printing into printout to avoid
duplicated code in the callers.
v2: Merged with other patches. Remove unnecessary hunk.
Readd hunk that ended in earlier patch.
v3: Fix noise/running output in CSV mode
v4: Merge with later patch that also moves not supported printing.
Signed-off-by: Andi Kleen <ak@linux.intel.com>
---
tools/perf/builtin-stat.c | 123 ++++++++++++----------------------------------
1 file changed, 32 insertions(+), 91 deletions(-)
diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c
index c976c63..bfb6e07 100644
--- a/tools/perf/builtin-stat.c
+++ b/tools/perf/builtin-stat.c
@@ -848,7 +848,7 @@ static void abs_printout(int id, int nr, struct perf_evsel *evsel, double avg)
}
static void printout(int id, int nr, struct perf_evsel *counter, double uval,
- char *prefix)
+ char *prefix, u64 run, u64 ena, double noise)
{
struct perf_stat_output_ctx out;
struct outstate os = {
@@ -860,6 +860,30 @@ static void printout(int id, int nr, struct perf_evsel *counter, double uval,
nl = new_line_std;
+ if (run == 0 || ena == 0) {
+ aggr_printout(counter, id, nr);
+
+ fprintf(stat_config.output, "%*s%s",
+ csv_output ? 0 : 18,
+ counter->supported ? CNTR_NOT_COUNTED : CNTR_NOT_SUPPORTED,
+ csv_sep);
+
+ fprintf(stat_config.output, "%-*s%s",
+ csv_output ? 0 : unit_width,
+ counter->unit, csv_sep);
+
+ fprintf(stat_config.output, "%*s",
+ csv_output ? 0 : -25,
+ perf_evsel__name(counter));
+
+ if (counter->cgrp)
+ fprintf(stat_config.output, "%s%s",
+ csv_sep, counter->cgrp->name);
+
+ print_running(run, ena);
+ return;
+ }
+
if (nsec_counter(counter))
nsec_printout(id, nr, counter, uval);
else
@@ -874,6 +898,9 @@ static void printout(int id, int nr, struct perf_evsel *counter, double uval,
stat_config.aggr_mode == AGGR_GLOBAL ? 0 :
cpu_map__id_to_cpu(id),
&out);
+
+ print_noise(counter, noise);
+ print_running(run, ena);
}
static void print_aggr(char *prefix)
@@ -904,36 +931,8 @@ static void print_aggr(char *prefix)
if (prefix)
fprintf(output, "%s", prefix);
- if (run == 0 || ena == 0) {
- aggr_printout(counter, id, nr);
-
- fprintf(output, "%*s%s",
- csv_output ? 0 : 18,
- counter->supported ? CNTR_NOT_COUNTED : CNTR_NOT_SUPPORTED,
- csv_sep);
-
- fprintf(output, "%-*s%s",
- csv_output ? 0 : unit_width,
- counter->unit, csv_sep);
-
- fprintf(output, "%*s",
- csv_output ? 0 : -25,
- perf_evsel__name(counter));
-
- if (counter->cgrp)
- fprintf(output, "%s%s",
- csv_sep, counter->cgrp->name);
-
- print_running(run, ena);
- fputc('\n', output);
- continue;
- }
uval = val * counter->scale;
- printout(id, nr, counter, uval, prefix);
- if (!csv_output)
- print_noise(counter, 1.0);
-
- print_running(run, ena);
+ printout(id, nr, counter, uval, prefix, run, ena, 1.0);
fputc('\n', output);
}
}
@@ -960,12 +959,7 @@ static void print_aggr_thread(struct perf_evsel *counter, char *prefix)
fprintf(output, "%s", prefix);
uval = val * counter->scale;
- printout(thread, 0, counter, uval, prefix);
-
- if (!csv_output)
- print_noise(counter, 1.0);
-
- print_running(run, ena);
+ printout(thread, 0, counter, uval, prefix, run, ena, 1.0);
fputc('\n', output);
}
}
@@ -979,7 +973,6 @@ static void print_counter_aggr(struct perf_evsel *counter, char *prefix)
FILE *output = stat_config.output;
struct perf_stat_evsel *ps = counter->priv;
double avg = avg_stats(&ps->res_stats[0]);
- int scaled = counter->counts->scaled;
double uval;
double avg_enabled, avg_running;
@@ -989,32 +982,8 @@ static void print_counter_aggr(struct perf_evsel *counter, char *prefix)
if (prefix)
fprintf(output, "%s", prefix);
- if (scaled == -1 || !counter->supported) {
- fprintf(output, "%*s%s",
- csv_output ? 0 : 18,
- counter->supported ? CNTR_NOT_COUNTED : CNTR_NOT_SUPPORTED,
- csv_sep);
- fprintf(output, "%-*s%s",
- csv_output ? 0 : unit_width,
- counter->unit, csv_sep);
- fprintf(output, "%*s",
- csv_output ? 0 : -25,
- perf_evsel__name(counter));
-
- if (counter->cgrp)
- fprintf(output, "%s%s", csv_sep, counter->cgrp->name);
-
- print_running(avg_running, avg_enabled);
- fputc('\n', output);
- return;
- }
-
uval = avg * counter->scale;
- printout(-1, 0, counter, uval, prefix);
-
- print_noise(counter, avg);
-
- print_running(avg_running, avg_enabled);
+ printout(-1, 0, counter, uval, prefix, avg_running, avg_enabled, avg);
fprintf(output, "\n");
}
@@ -1037,36 +1006,8 @@ static void print_counter(struct perf_evsel *counter, char *prefix)
if (prefix)
fprintf(output, "%s", prefix);
- if (run == 0 || ena == 0) {
- fprintf(output, "CPU%*d%s%*s%s",
- csv_output ? 0 : -4,
- perf_evsel__cpus(counter)->map[cpu], csv_sep,
- csv_output ? 0 : 18,
- counter->supported ? CNTR_NOT_COUNTED : CNTR_NOT_SUPPORTED,
- csv_sep);
-
- fprintf(output, "%-*s%s",
- csv_output ? 0 : unit_width,
- counter->unit, csv_sep);
-
- fprintf(output, "%*s",
- csv_output ? 0 : -25,
- perf_evsel__name(counter));
-
- if (counter->cgrp)
- fprintf(output, "%s%s",
- csv_sep, counter->cgrp->name);
-
- print_running(run, ena);
- fputc('\n', output);
- continue;
- }
-
uval = val * counter->scale;
- printout(cpu, 0, counter, uval, prefix);
- if (!csv_output)
- print_noise(counter, 1.0);
- print_running(run, ena);
+ printout(cpu, 0, counter, uval, prefix, run, ena, 1.0);
fputc('\n', output);
}
--
2.4.3
[toc] | [next] | [standalone]
| From | Jiri Olsa <jolsa@redhat.com> |
|---|---|
| Date | 2016-01-22 10:50 +0100 |
| Subject | Re: [PATCH 3/9] perf, tools, stat: Move noise/running printing into printout |
| Message-ID | <qTGvU-2d2-23@gated-at.bofh.it> |
| In reply to | #1312820 |
On Tue, Jan 19, 2016 at 06:26:46PM -0800, Andi Kleen wrote:
SNIP
> uval = avg * counter->scale;
> - printout(-1, 0, counter, uval, prefix);
> -
> - print_noise(counter, avg);
> -
> - print_running(avg_running, avg_enabled);
> + printout(-1, 0, counter, uval, prefix, avg_running, avg_enabled, avg);
> fprintf(output, "\n");
> }
>
> @@ -1037,36 +1006,8 @@ static void print_counter(struct perf_evsel *counter, char *prefix)
> if (prefix)
> fprintf(output, "%s", prefix);
>
> - if (run == 0 || ena == 0) {
> - fprintf(output, "CPU%*d%s%*s%s",
> - csv_output ? 0 : -4,
> - perf_evsel__cpus(counter)->map[cpu], csv_sep,
> - csv_output ? 0 : 18,
> - counter->supported ? CNTR_NOT_COUNTED : CNTR_NOT_SUPPORTED,
> - csv_sep);
this hunk is not preserved in the new code.. I guess the output is
different for -A if counter wasn't meassure?
thanks,
jirka
[toc] | [prev] | [next] | [standalone]
| From | Andi Kleen <andi@firstfloor.org> |
|---|---|
| Date | 2016-01-23 04:50 +0100 |
| Subject | Re: [PATCH 3/9] perf, tools, stat: Move noise/running printing into printout |
| Message-ID | <qTXn3-5j1-7@gated-at.bofh.it> |
| In reply to | #1314855 |
> > - if (run == 0 || ena == 0) {
> > - fprintf(output, "CPU%*d%s%*s%s",
> > - csv_output ? 0 : -4,
> > - perf_evsel__cpus(counter)->map[cpu], csv_sep,
> > - csv_output ? 0 : 18,
> > - counter->supported ? CNTR_NOT_COUNTED : CNTR_NOT_SUPPORTED,
> > - csv_sep);
>
> this hunk is not preserved in the new code.. I guess the output is
> different for -A if counter wasn't meassure?
The code for this is common in printout() now.
-Andi
[toc] | [prev] | [next] | [standalone]
| From | Jiri Olsa <jolsa@redhat.com> |
|---|---|
| Date | 2016-01-23 17:30 +0100 |
| Subject | Re: [PATCH 3/9] perf, tools, stat: Move noise/running printing into printout |
| Message-ID | <qU9ey-5ik-5@gated-at.bofh.it> |
| In reply to | #1315513 |
On Sat, Jan 23, 2016 at 04:43:05AM +0100, Andi Kleen wrote:
> > > - if (run == 0 || ena == 0) {
> > > - fprintf(output, "CPU%*d%s%*s%s",
> > > - csv_output ? 0 : -4,
> > > - perf_evsel__cpus(counter)->map[cpu], csv_sep,
> > > - csv_output ? 0 : 18,
> > > - counter->supported ? CNTR_NOT_COUNTED : CNTR_NOT_SUPPORTED,
> > > - csv_sep);
> >
> > this hunk is not preserved in the new code.. I guess the output is
> > different for -A if counter wasn't meassure?
>
> The code for this is common in printout() now.
but what will be printed for -A not counted counters?
not the "CPU%*d%s%*s%s" ...
jirka
[toc] | [prev] | [next] | [standalone]
| From | Andi Kleen <andi@firstfloor.org> |
|---|---|
| Date | 2016-01-27 01:00 +0100 |
| Subject | Re: [PATCH 3/9] perf, tools, stat: Move noise/running printing into printout |
| Message-ID | <qVlGH-3f4-21@gated-at.bofh.it> |
| In reply to | #1315678 |
On Sat, Jan 23, 2016 at 05:19:58PM +0100, Jiri Olsa wrote:
> On Sat, Jan 23, 2016 at 04:43:05AM +0100, Andi Kleen wrote:
> > > > - if (run == 0 || ena == 0) {
> > > > - fprintf(output, "CPU%*d%s%*s%s",
> > > > - csv_output ? 0 : -4,
> > > > - perf_evsel__cpus(counter)->map[cpu], csv_sep,
> > > > - csv_output ? 0 : 18,
> > > > - counter->supported ? CNTR_NOT_COUNTED : CNTR_NOT_SUPPORTED,
> > > > - csv_sep);
> > >
> > > this hunk is not preserved in the new code.. I guess the output is
> > > different for -A if counter wasn't meassure?
> >
> > The code for this is common in printout() now.
>
> but what will be printed for -A not counted counters?
> not the "CPU%*d%s%*s%s" ...
CPU0 <not supported> stalled-cycles-backend
CPU1 <not supported> stalled-cycles-backend
CPU2 <not supported> stalled-cycles-backend
CPU3 <not supported> stalled-cycles-backend
CPU4 <not supported> stalled-cycles-backend
CPU5 <not supported> stalled-cycles-backend
CPU6 <not supported> stalled-cycles-backend
CPU7 <not supported> stalled-cycles-backend
CPU8 <not supported> stalled-cycles-backend
CPU9 <not supported> stalled-cycles-backend
CPU10 <not supported> stalled-cycles-backend
CPU11 <not supported> stalled-cycles-backend
-Andi
[toc] | [prev] | [next] | [standalone]
| From | Jiri Olsa <jolsa@redhat.com> |
|---|---|
| Date | 2016-01-28 10:50 +0100 |
| Subject | Re: [PATCH 3/9] perf, tools, stat: Move noise/running printing into printout |
| Message-ID | <qVRnc-1sZ-7@gated-at.bofh.it> |
| In reply to | #1318485 |
On Wed, Jan 27, 2016 at 12:57:43AM +0100, Andi Kleen wrote:
> On Sat, Jan 23, 2016 at 05:19:58PM +0100, Jiri Olsa wrote:
> > On Sat, Jan 23, 2016 at 04:43:05AM +0100, Andi Kleen wrote:
> > > > > - if (run == 0 || ena == 0) {
> > > > > - fprintf(output, "CPU%*d%s%*s%s",
> > > > > - csv_output ? 0 : -4,
> > > > > - perf_evsel__cpus(counter)->map[cpu], csv_sep,
> > > > > - csv_output ? 0 : 18,
> > > > > - counter->supported ? CNTR_NOT_COUNTED : CNTR_NOT_SUPPORTED,
> > > > > - csv_sep);
> > > >
> > > > this hunk is not preserved in the new code.. I guess the output is
> > > > different for -A if counter wasn't meassure?
> > >
> > > The code for this is common in printout() now.
> >
> > but what will be printed for -A not counted counters?
> > not the "CPU%*d%s%*s%s" ...
>
>
> CPU0 <not supported> stalled-cycles-backend
> CPU1 <not supported> stalled-cycles-backend
> CPU2 <not supported> stalled-cycles-backend
> CPU3 <not supported> stalled-cycles-backend
> CPU4 <not supported> stalled-cycles-backend
> CPU5 <not supported> stalled-cycles-backend
> CPU6 <not supported> stalled-cycles-backend
> CPU7 <not supported> stalled-cycles-backend
> CPU8 <not supported> stalled-cycles-backend
> CPU9 <not supported> stalled-cycles-backend
> CPU10 <not supported> stalled-cycles-backend
> CPU11 <not supported> stalled-cycles-backend
ah the aggr_printout provides that now.. which wasn't
the case for the removed code
thanks,
jirka
[toc] | [prev] | [next] | [standalone]
| From | Andi Kleen <andi@firstfloor.org> |
|---|---|
| Date | 2016-01-27 01:00 +0100 |
| Subject | Re: [PATCH 3/9] perf, tools, stat: Move noise/running printing into printout |
| Message-ID | <qVlGG-3f4-11@gated-at.bofh.it> |
| In reply to | #1314855 |
On Fri, Jan 22, 2016 at 10:41:53AM +0100, Jiri Olsa wrote:
> On Tue, Jan 19, 2016 at 06:26:46PM -0800, Andi Kleen wrote:
>
> SNIP
>
> > uval = avg * counter->scale;
> > - printout(-1, 0, counter, uval, prefix);
> > -
> > - print_noise(counter, avg);
> > -
> > - print_running(avg_running, avg_enabled);
> > + printout(-1, 0, counter, uval, prefix, avg_running, avg_enabled, avg);
> > fprintf(output, "\n");
> > }
> >
> > @@ -1037,36 +1006,8 @@ static void print_counter(struct perf_evsel *counter, char *prefix)
> > if (prefix)
> > fprintf(output, "%s", prefix);
> >
> > - if (run == 0 || ena == 0) {
> > - fprintf(output, "CPU%*d%s%*s%s",
> > - csv_output ? 0 : -4,
> > - perf_evsel__cpus(counter)->map[cpu], csv_sep,
> > - csv_output ? 0 : 18,
> > - counter->supported ? CNTR_NOT_COUNTED : CNTR_NOT_SUPPORTED,
> > - csv_sep);
>
> this hunk is not preserved in the new code.. I guess the output is
> different for -A if counter wasn't meassure?
It's the same, at least in the final state.
-Andi
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web