All of lore.kernel.org
 help / color / mirror / Atom feed
From: Namhyung Kim <namhyung@kernel.org>
To: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
Cc: Jiri Olsa <jolsa@redhat.com>,
	Peter Zijlstra <a.p.zijlstra@chello.nl>,
	Paul Mackerras <paulus@samba.org>, Ingo Molnar <mingo@kernel.org>,
	LKML <linux-kernel@vger.kernel.org>,
	Stephane Eranian <eranian@google.com>,
	Andi Kleen <andi@firstfloor.org>,
	Namhyung Kim <namhyung.kim@lge.com>
Subject: Re: [PATCH 12/18] perf ui/hist: Add support for event group view
Date: Tue, 4 Dec 2012 18:16:59 +0900	[thread overview]
Message-ID: <CAM9d7cgZMfbYOdcELNXdGPT9tOzbKLZbNWjZ8g3Sug6_88pGnA@mail.gmail.com> (raw)
In-Reply-To: <20121130135215.GG1957@ghostprotocols.net>

On Fri, Nov 30, 2012 at 10:52 PM, Arnaldo Carvalho de Melo
<acme@ghostprotocols.net> wrote:
> Em Fri, Nov 30, 2012 at 02:29:43PM +0100, Jiri Olsa escreveu:
>> On Thu, Nov 29, 2012 at 03:38:40PM +0900, Namhyung Kim wrote:
>> > +#define __HPP_COLOR_PERCENT_FN(_type, _field)                                      \
>> > +static int hpp__color_##_type(struct perf_hpp *hpp, struct hist_entry *he)         \
>> > +{                                                                          \
>> > +   int ret;                                                                \
>> > +   double percent = 0.0;                                                   \
>> > +   struct hists *hists = he->hists;                                        \
>> > +                                                                           \
>> > +   if (hists->stats.total_period)                                          \
>> > +           percent = 100.0 * he->stat._field / hists->stats.total_period;  \
>> > +                                                                           \
>> > +   ret = percent_color_snprintf(hpp->buf, hpp->size, " %6.2f%%", percent); \
>> > +                                                                           \
>> > +   if (symbol_conf.event_group) {                                          \
>> > +           int i;                                                          \
>> > +           struct perf_evsel *evsel = hists_to_evsel(hists);               \
>> > +           struct hist_entry *pair;                                        \
>> > +           int nr_members = evsel->nr_members;                             \
>> > +           double *percents;                                               \
>> > +                                                                           \
>> > +           if (nr_members <= 1)                                            \
>> > +                   return ret;                                             \
>> > +                                                                           \
>> > +           percents = zalloc(sizeof(*percents) * nr_members);              \
>> > +           if (percents == NULL) {                                         \
>> > +                   pr_warning("Not enough memory!\n");                     \
>> > +                   return ret;                                             \
>> > +           }                                                               \
>
> Why do we need to zalloc this percents array?
>
>> > +           list_for_each_entry(pair, &he->pairs.head, pairs.node) {        \
>> > +                   u64 period = pair->stat._field;                         \
>> > +                   u64 total = pair->hists->stats.total_period;            \
>> > +                                                                           \
>> > +                   if (!total)                                             \
>> > +                           continue;                                       \
>> > +                                                                           \
>> > +                   evsel = hists_to_evsel(pair->hists);                    \
>> > +                   i = perf_evsel__group_idx(evsel);                       \
>> > +                   percents[i] = 100.0 * period / total;                   \
>
> Why not use percent_color_snprintf here, using some "%*s" thing that
> uses i to position the output in the right column? This way the
> following loop can be ditched as well. No?
>
>> > +           }                                                               \
>> > +                                                                           \
>> > +           for (i = 1; i < nr_members; i++) {                              \
>> > +                   ret += percent_color_snprintf(hpp->buf + ret,           \
>> > +                                                 hpp->size - ret,          \
>> > +                                                 " %6.2f%%", percents[i]); \
>> > +           }                                                               \
>> > +           free(percents);                                                 \
>> > +   }                                                                       \
>> > +   return ret;                                                             \
>
> - Arnaldo

Ah, I missed your point.  Just got it now, will try this approach.  So
you want to see no "0.00%" for a dummy entry, right?

Thanks,
Namhyung

  parent reply	other threads:[~2012-12-04  9:17 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-29  6:38 [PATCH 00/18] perf report: Add support for event group view (v6) Namhyung Kim
2012-11-29  6:38 ` Namhyung Kim
2012-11-29 12:21   ` Jiri Olsa
2012-11-29  6:38 ` [PATCH 01/18] perf evsel: Set leader evsel's ->leader to itself Namhyung Kim
2012-11-29 14:28   ` Jiri Olsa
2013-01-24 18:48   ` [tip:perf/core] " tip-bot for Namhyung Kim
2012-11-29  6:38 ` [PATCH 02/18] perf evsel: Convert to _is_group_leader method Namhyung Kim
2012-11-29 14:28   ` Jiri Olsa
2013-01-24 18:49   ` [tip:perf/core] " tip-bot for Namhyung Kim
2012-11-29  6:38 ` [PATCH 03/18] perf tools: Keep group information Namhyung Kim
2012-11-29 14:33   ` Jiri Olsa
2012-11-29 14:58     ` Namhyung Kim
2012-11-29 15:02       ` Jiri Olsa
2012-11-29 15:09         ` Namhyung Kim
2012-11-29 19:09           ` Arnaldo Carvalho de Melo
2012-12-03  1:12             ` Namhyung Kim
2012-11-29  6:38 ` [PATCH 04/18] perf header: Add HEADER_GROUP_DESC feature Namhyung Kim
2012-11-29 18:43   ` Arnaldo Carvalho de Melo
2012-12-03  1:16     ` Namhyung Kim
2012-11-29  6:38 ` [PATCH 05/18] perf tools: Fix typo on hist__entry_add_pair Namhyung Kim
2012-11-29 14:33   ` Jiri Olsa
2012-11-29  6:38 ` [PATCH 06/18] perf hists: Link hist entry pairs to leader Namhyung Kim
2013-01-24 18:47   ` [tip:perf/core] " tip-bot for Namhyung Kim
2012-11-29  6:38 ` [PATCH 07/18] perf hists: Exchange order of comparing items when collapsing hists Namhyung Kim
2012-11-29 18:52   ` Arnaldo Carvalho de Melo
2012-12-03  1:41     ` Namhyung Kim
2012-12-03 10:19       ` Jiri Olsa
2012-12-03 10:49         ` Namhyung Kim
2012-11-29  6:38 ` [PATCH 08/18] perf hists: Add hists__{match,link}_collapsed Namhyung Kim
2012-11-29  6:38 ` [PATCH 09/18] perf symbol: Introduce symbol_conf.event_group Namhyung Kim
2012-11-29  6:38 ` [PATCH 10/18] perf report: Make another loop for linking group hists Namhyung Kim
2012-11-29  6:38 ` [PATCH 11/18] perf hists: Resort hist entries using group members for output Namhyung Kim
2012-11-29  6:38 ` [PATCH 12/18] perf ui/hist: Add support for event group view Namhyung Kim
     [not found]   ` <20121130132943.GC1080@krava.brq.redhat.com>
2012-11-30 13:52     ` Arnaldo Carvalho de Melo
2012-12-03  1:51       ` Namhyung Kim
2012-12-04  9:16       ` Namhyung Kim [this message]
2012-12-04 13:50         ` Arnaldo Carvalho de Melo
2012-12-04 14:51           ` Namhyung Kim
2012-12-03  1:56     ` Namhyung Kim
2012-12-03 10:23       ` Jiri Olsa
2012-12-03 10:39         ` Namhyung Kim
2012-12-03 15:57           ` Jiri Olsa
2012-12-03 16:19             ` Namhyung Kim
2012-11-29  6:38 ` [PATCH 13/18] perf hist browser: " Namhyung Kim
2012-11-29  6:38 ` [PATCH 14/18] perf gtk/browser: " Namhyung Kim
2012-11-29  6:38 ` [PATCH 15/18] perf report: Bypass non-leader events when event group is enabled Namhyung Kim
2012-11-29  6:38 ` [PATCH 16/18] perf report: Show group description " Namhyung Kim
2012-11-29  6:38 ` [PATCH 17/18] perf report: Add --group option Namhyung Kim
2012-11-29  6:38 ` [PATCH 18/18] perf report: Add report.group config option Namhyung Kim
2012-11-29  6:44 ` [PATCH 00/18] perf report: Add support for event group view (v6) Namhyung Kim

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAM9d7cgZMfbYOdcELNXdGPT9tOzbKLZbNWjZ8g3Sug6_88pGnA@mail.gmail.com \
    --to=namhyung@kernel.org \
    --cc=a.p.zijlstra@chello.nl \
    --cc=acme@ghostprotocols.net \
    --cc=andi@firstfloor.org \
    --cc=eranian@google.com \
    --cc=jolsa@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=namhyung.kim@lge.com \
    --cc=paulus@samba.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.