From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751524AbbCMHet (ORCPT ); Fri, 13 Mar 2015 03:34:49 -0400 Received: from mail-wi0-f182.google.com ([209.85.212.182]:43309 "EHLO mail-wi0-f182.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750853AbbCMHes (ORCPT ); Fri, 13 Mar 2015 03:34:48 -0400 Date: Fri, 13 Mar 2015 08:34:41 +0100 From: Ingo Molnar To: Arnaldo Carvalho de Melo Cc: linux-kernel@vger.kernel.org, Andi Kleen , Jiri Olsa , Arnaldo Carvalho de Melo Subject: Re: [PATCH 18/24] perf stat: Output running time and run/enabled ratio in CSV mode Message-ID: <20150313073441.GA20081@gmail.com> References: <1426195684-20046-1-git-send-email-acme@kernel.org> <1426195684-20046-19-git-send-email-acme@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1426195684-20046-19-git-send-email-acme@kernel.org> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org * Arnaldo Carvalho de Melo wrote: > From: Andi Kleen > > The information how much a counter ran in 'perf stat' can be quite > interesting for other tools to judge how trustworthy a measurement is. > > Currently it is only output in non CSV mode. > > This patches make perf stat always output the running time and the > enabled/running ratio in CSV mode. > > This adds two new fields at the end for each line. I assume that > existing tools ignore new fields at the end, so it's on by default. > > Only CSV mode is affected, no difference otherwise. > > v2: Add extra print_running function > v3: Avoid printing nan > v4: Remove some elses and add brackets. > v5: Move non CSV case into print_running > > Signed-off-by: Andi Kleen > Reviewed-by: Jiri Olsa > Acked-by: Namhyung Kim > Cc: Jiri Olsa > Link: http://lkml.kernel.org/r/1426083387-17006-1-git-send-email-andi@firstfloor.org > Signed-off-by: Arnaldo Carvalho de Melo > --- > tools/perf/builtin-stat.c | 47 ++++++++++++++++++++++++----------------------- > 1 file changed, 24 insertions(+), 23 deletions(-) > > diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c > index d28949d210cc..765e2204f6bf 100644 > --- a/tools/perf/builtin-stat.c > +++ b/tools/perf/builtin-stat.c > @@ -769,6 +769,18 @@ static int run_perf_stat(int argc, const char **argv) > return ret; > } > > +static void print_running(u64 run, u64 ena) > +{ > + if (csv_output) { > + fprintf(output, "%s%" PRIu64 "%s%.2f", > + csv_sep, > + run, > + csv_sep, > + ena ? 100.0 * run / ena : 100.0); > + } else if (run != ena) > + fprintf(output, " (%.2f%%)", 100.0 * run / ena); That's not the standard pattern for 'else if' branches, but: } else { if () ... } to make it stand apart more from a simple 'else' branch. Thanks, Ingo