All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC/PATCH 1/2] perf top: Fix -z option behavior
@ 2014-08-12  8:16 Namhyung Kim
  2014-08-12  8:16 ` [PATCH 2/2] perf top: Handle 'z' key for toggle zeroing samples in TUI Namhyung Kim
                   ` (4 more replies)
  0 siblings, 5 replies; 15+ messages in thread
From: Namhyung Kim @ 2014-08-12  8:16 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: Peter Zijlstra, Ingo Molnar, Paul Mackerras, Namhyung Kim,
	Namhyung Kim, LKML, Stephane Eranian, Jiri Olsa, David Ahern

The current -z option does almost nothing.  It doesn't zero the
existing samples so that we can see profiles of exited process after
last refresh.  It seems it only affects annotation.

This patch clears existing entries before processing if -z option is
given.  For this original decaying logic also moved before processing.

Reported-by: Stephane Eranian <eranian@google.com>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
---
 tools/perf/builtin-top.c | 23 +++++++++++++++++------
 tools/perf/util/hist.c   | 22 ++++++++++++++++++++++
 tools/perf/util/hist.h   |  1 +
 3 files changed, 40 insertions(+), 6 deletions(-)

diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c
index 4fb6f726271c..e486501b2067 100644
--- a/tools/perf/builtin-top.c
+++ b/tools/perf/builtin-top.c
@@ -276,11 +276,17 @@ static void perf_top__print_sym_table(struct perf_top *top)
 		return;
 	}
 
+	if (top->zero) {
+		hists__delete_entries(&top->sym_evsel->hists);
+	} else {
+		hists__decay_entries(&top->sym_evsel->hists,
+				     top->hide_user_symbols,
+				     top->hide_kernel_symbols);
+	}
+
 	hists__collapse_resort(&top->sym_evsel->hists, NULL);
 	hists__output_resort(&top->sym_evsel->hists);
-	hists__decay_entries(&top->sym_evsel->hists,
-			     top->hide_user_symbols,
-			     top->hide_kernel_symbols);
+
 	hists__output_recalc_col_len(&top->sym_evsel->hists,
 				     top->print_entries - printed);
 	putchar('\n');
@@ -542,11 +548,16 @@ static void perf_top__sort_new_samples(void *arg)
 	if (t->evlist->selected != NULL)
 		t->sym_evsel = t->evlist->selected;
 
+	if (t->zero) {
+		hists__delete_entries(&t->sym_evsel->hists);
+	} else {
+		hists__decay_entries(&t->sym_evsel->hists,
+				     t->hide_user_symbols,
+				     t->hide_kernel_symbols);
+	}
+
 	hists__collapse_resort(&t->sym_evsel->hists, NULL);
 	hists__output_resort(&t->sym_evsel->hists);
-	hists__decay_entries(&t->sym_evsel->hists,
-			     t->hide_user_symbols,
-			     t->hide_kernel_symbols);
 }
 
 static void *display_thread_tui(void *arg)
diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c
index 30df6187ee02..86569fa3651d 100644
--- a/tools/perf/util/hist.c
+++ b/tools/perf/util/hist.c
@@ -277,6 +277,28 @@ void hists__decay_entries(struct hists *hists, bool zap_user, bool zap_kernel)
 	}
 }
 
+void hists__delete_entries(struct hists *hists)
+{
+	struct rb_node *next = rb_first(&hists->entries);
+	struct hist_entry *n;
+
+	while (next) {
+		n = rb_entry(next, struct hist_entry, rb_node);
+		next = rb_next(&n->rb_node);
+
+		rb_erase(&n->rb_node, &hists->entries);
+
+		if (sort__need_collapse)
+			rb_erase(&n->rb_node_in, &hists->entries_collapsed);
+
+		--hists->nr_entries;
+		if (!n->filtered)
+			--hists->nr_non_filtered_entries;
+
+		hist_entry__free(n);
+	}
+}
+
 /*
  * histogram, sorted on item, collects periods
  */
diff --git a/tools/perf/util/hist.h b/tools/perf/util/hist.h
index 95405a8fbd95..8c9c70e18cbb 100644
--- a/tools/perf/util/hist.h
+++ b/tools/perf/util/hist.h
@@ -152,6 +152,7 @@ void hists__output_resort(struct hists *hists);
 void hists__collapse_resort(struct hists *hists, struct ui_progress *prog);
 
 void hists__decay_entries(struct hists *hists, bool zap_user, bool zap_kernel);
+void hists__delete_entries(struct hists *hists);
 void hists__output_recalc_col_len(struct hists *hists, int max_rows);
 
 u64 hists__total_period(struct hists *hists);
-- 
2.0.0


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 2/2] perf top: Handle 'z' key for toggle zeroing samples in TUI
  2014-08-12  8:16 [RFC/PATCH 1/2] perf top: Fix -z option behavior Namhyung Kim
@ 2014-08-12  8:16 ` Namhyung Kim
  2014-08-12 23:07   ` Stephane Eranian
  2014-08-14  8:49   ` [tip:perf/core] " tip-bot for Namhyung Kim
  2014-08-12 19:01 ` [RFC/PATCH 1/2] perf top: Fix -z option behavior David Ahern
                   ` (3 subsequent siblings)
  4 siblings, 2 replies; 15+ messages in thread
From: Namhyung Kim @ 2014-08-12  8:16 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: Peter Zijlstra, Ingo Molnar, Paul Mackerras, Namhyung Kim,
	Namhyung Kim, LKML, Stephane Eranian, Jiri Olsa, David Ahern

The perf top TUI lacks 'z' key support to toggle sample zeroing.
Add it.

Reported-by: Stephane Eranian <eranian@google.com>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
---
 tools/perf/ui/browsers/hists.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/tools/perf/ui/browsers/hists.c b/tools/perf/ui/browsers/hists.c
index 045c1e16ac59..381c085a41b8 100644
--- a/tools/perf/ui/browsers/hists.c
+++ b/tools/perf/ui/browsers/hists.c
@@ -10,6 +10,7 @@
 #include "../../util/pstack.h"
 #include "../../util/sort.h"
 #include "../../util/util.h"
+#include "../../util/top.h"
 #include "../../arch/common.h"
 
 #include "../browser.h"
@@ -1530,6 +1531,7 @@ static int perf_evsel__hists_browse(struct perf_evsel *evsel, int nr_events,
 	"P             Print histograms to perf.hist.N\n"
 	"t             Zoom into current Thread\n"
 	"V             Verbose (DSO names in callchains, etc)\n"
+	"z             Toggle zeroing of samples\n"
 	"/             Filter symbol by name";
 
 	if (browser == NULL)
@@ -1630,6 +1632,13 @@ static int perf_evsel__hists_browse(struct perf_evsel *evsel, int nr_events,
 		case 'F':
 			symbol_conf.filter_relative ^= 1;
 			continue;
+		case 'z':
+			if (!is_report_browser(hbt)) {
+				struct perf_top *top = hbt->arg;
+
+				top->zero = !top->zero;
+			}
+			continue;
 		case K_F1:
 		case 'h':
 		case '?':
-- 
2.0.0


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* Re: [RFC/PATCH 1/2] perf top: Fix -z option behavior
  2014-08-12  8:16 [RFC/PATCH 1/2] perf top: Fix -z option behavior Namhyung Kim
  2014-08-12  8:16 ` [PATCH 2/2] perf top: Handle 'z' key for toggle zeroing samples in TUI Namhyung Kim
@ 2014-08-12 19:01 ` David Ahern
  2014-08-13  4:52   ` Namhyung Kim
  2014-08-12 23:05 ` Stephane Eranian
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 15+ messages in thread
From: David Ahern @ 2014-08-12 19:01 UTC (permalink / raw)
  To: Namhyung Kim, Arnaldo Carvalho de Melo, Stephane Eranian
  Cc: Peter Zijlstra, Ingo Molnar, Paul Mackerras, Namhyung Kim, LKML,
	Jiri Olsa

On 8/12/14, 2:16 AM, Namhyung Kim wrote:
> The current -z option does almost nothing.  It doesn't zero the
> existing samples so that we can see profiles of exited process after
> last refresh.  It seems it only affects annotation.
>
> This patch clears existing entries before processing if -z option is
> given.  For this original decaying logic also moved before processing.

This option was broken somewhere recently. I am on vacation for another 
week, so I can't do a git bisect myself but I recall it worked a year or 
so ago. Try v3.4 as a start point.

David

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [RFC/PATCH 1/2] perf top: Fix -z option behavior
  2014-08-12  8:16 [RFC/PATCH 1/2] perf top: Fix -z option behavior Namhyung Kim
  2014-08-12  8:16 ` [PATCH 2/2] perf top: Handle 'z' key for toggle zeroing samples in TUI Namhyung Kim
  2014-08-12 19:01 ` [RFC/PATCH 1/2] perf top: Fix -z option behavior David Ahern
@ 2014-08-12 23:05 ` Stephane Eranian
  2014-08-13 20:27 ` Arnaldo Carvalho de Melo
  2014-08-14  8:49 ` [tip:perf/core] " tip-bot for Namhyung Kim
  4 siblings, 0 replies; 15+ messages in thread
From: Stephane Eranian @ 2014-08-12 23:05 UTC (permalink / raw)
  To: Namhyung Kim
  Cc: Arnaldo Carvalho de Melo, Peter Zijlstra, Ingo Molnar,
	Paul Mackerras, Namhyung Kim, LKML, Jiri Olsa, David Ahern

On Tue, Aug 12, 2014 at 10:16 AM, Namhyung Kim <namhyung@kernel.org> wrote:
> The current -z option does almost nothing.  It doesn't zero the
> existing samples so that we can see profiles of exited process after
> last refresh.  It seems it only affects annotation.
>
> This patch clears existing entries before processing if -z option is
> given.  For this original decaying logic also moved before processing.
>
Works for me now in TUI and stdio modes. Thanks for fixing this quickly.

Tested-by: Stephane Eranian <eranian@google.com>

> Reported-by: Stephane Eranian <eranian@google.com>
> Signed-off-by: Namhyung Kim <namhyung@kernel.org>
> ---
>  tools/perf/builtin-top.c | 23 +++++++++++++++++------
>  tools/perf/util/hist.c   | 22 ++++++++++++++++++++++
>  tools/perf/util/hist.h   |  1 +
>  3 files changed, 40 insertions(+), 6 deletions(-)
>
> diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c
> index 4fb6f726271c..e486501b2067 100644
> --- a/tools/perf/builtin-top.c
> +++ b/tools/perf/builtin-top.c
> @@ -276,11 +276,17 @@ static void perf_top__print_sym_table(struct perf_top *top)
>                 return;
>         }
>
> +       if (top->zero) {
> +               hists__delete_entries(&top->sym_evsel->hists);
> +       } else {
> +               hists__decay_entries(&top->sym_evsel->hists,
> +                                    top->hide_user_symbols,
> +                                    top->hide_kernel_symbols);
> +       }
> +
>         hists__collapse_resort(&top->sym_evsel->hists, NULL);
>         hists__output_resort(&top->sym_evsel->hists);
> -       hists__decay_entries(&top->sym_evsel->hists,
> -                            top->hide_user_symbols,
> -                            top->hide_kernel_symbols);
> +
>         hists__output_recalc_col_len(&top->sym_evsel->hists,
>                                      top->print_entries - printed);
>         putchar('\n');
> @@ -542,11 +548,16 @@ static void perf_top__sort_new_samples(void *arg)
>         if (t->evlist->selected != NULL)
>                 t->sym_evsel = t->evlist->selected;
>
> +       if (t->zero) {
> +               hists__delete_entries(&t->sym_evsel->hists);
> +       } else {
> +               hists__decay_entries(&t->sym_evsel->hists,
> +                                    t->hide_user_symbols,
> +                                    t->hide_kernel_symbols);
> +       }
> +
>         hists__collapse_resort(&t->sym_evsel->hists, NULL);
>         hists__output_resort(&t->sym_evsel->hists);
> -       hists__decay_entries(&t->sym_evsel->hists,
> -                            t->hide_user_symbols,
> -                            t->hide_kernel_symbols);
>  }
>
>  static void *display_thread_tui(void *arg)
> diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c
> index 30df6187ee02..86569fa3651d 100644
> --- a/tools/perf/util/hist.c
> +++ b/tools/perf/util/hist.c
> @@ -277,6 +277,28 @@ void hists__decay_entries(struct hists *hists, bool zap_user, bool zap_kernel)
>         }
>  }
>
> +void hists__delete_entries(struct hists *hists)
> +{
> +       struct rb_node *next = rb_first(&hists->entries);
> +       struct hist_entry *n;
> +
> +       while (next) {
> +               n = rb_entry(next, struct hist_entry, rb_node);
> +               next = rb_next(&n->rb_node);
> +
> +               rb_erase(&n->rb_node, &hists->entries);
> +
> +               if (sort__need_collapse)
> +                       rb_erase(&n->rb_node_in, &hists->entries_collapsed);
> +
> +               --hists->nr_entries;
> +               if (!n->filtered)
> +                       --hists->nr_non_filtered_entries;
> +
> +               hist_entry__free(n);
> +       }
> +}
> +
>  /*
>   * histogram, sorted on item, collects periods
>   */
> diff --git a/tools/perf/util/hist.h b/tools/perf/util/hist.h
> index 95405a8fbd95..8c9c70e18cbb 100644
> --- a/tools/perf/util/hist.h
> +++ b/tools/perf/util/hist.h
> @@ -152,6 +152,7 @@ void hists__output_resort(struct hists *hists);
>  void hists__collapse_resort(struct hists *hists, struct ui_progress *prog);
>
>  void hists__decay_entries(struct hists *hists, bool zap_user, bool zap_kernel);
> +void hists__delete_entries(struct hists *hists);
>  void hists__output_recalc_col_len(struct hists *hists, int max_rows);
>
>  u64 hists__total_period(struct hists *hists);
> --
> 2.0.0
>

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 2/2] perf top: Handle 'z' key for toggle zeroing samples in TUI
  2014-08-12  8:16 ` [PATCH 2/2] perf top: Handle 'z' key for toggle zeroing samples in TUI Namhyung Kim
@ 2014-08-12 23:07   ` Stephane Eranian
  2014-08-13 20:37     ` Arnaldo Carvalho de Melo
  2014-08-14  8:49   ` [tip:perf/core] " tip-bot for Namhyung Kim
  1 sibling, 1 reply; 15+ messages in thread
From: Stephane Eranian @ 2014-08-12 23:07 UTC (permalink / raw)
  To: Namhyung Kim
  Cc: Arnaldo Carvalho de Melo, Peter Zijlstra, Ingo Molnar,
	Paul Mackerras, Namhyung Kim, LKML, Jiri Olsa, David Ahern

On Tue, Aug 12, 2014 at 10:16 AM, Namhyung Kim <namhyung@kernel.org> wrote:
> The perf top TUI lacks 'z' key support to toggle sample zeroing.
> Add it.
>
Works for me.
Tested-by: Stephane Eranian <eranian@google.com>

> Reported-by: Stephane Eranian <eranian@google.com>
> Signed-off-by: Namhyung Kim <namhyung@kernel.org>
> ---
>  tools/perf/ui/browsers/hists.c | 9 +++++++++
>  1 file changed, 9 insertions(+)
>
> diff --git a/tools/perf/ui/browsers/hists.c b/tools/perf/ui/browsers/hists.c
> index 045c1e16ac59..381c085a41b8 100644
> --- a/tools/perf/ui/browsers/hists.c
> +++ b/tools/perf/ui/browsers/hists.c
> @@ -10,6 +10,7 @@
>  #include "../../util/pstack.h"
>  #include "../../util/sort.h"
>  #include "../../util/util.h"
> +#include "../../util/top.h"
>  #include "../../arch/common.h"
>
>  #include "../browser.h"
> @@ -1530,6 +1531,7 @@ static int perf_evsel__hists_browse(struct perf_evsel *evsel, int nr_events,
>         "P             Print histograms to perf.hist.N\n"
>         "t             Zoom into current Thread\n"
>         "V             Verbose (DSO names in callchains, etc)\n"
> +       "z             Toggle zeroing of samples\n"
>         "/             Filter symbol by name";
>
>         if (browser == NULL)
> @@ -1630,6 +1632,13 @@ static int perf_evsel__hists_browse(struct perf_evsel *evsel, int nr_events,
>                 case 'F':
>                         symbol_conf.filter_relative ^= 1;
>                         continue;
> +               case 'z':
> +                       if (!is_report_browser(hbt)) {
> +                               struct perf_top *top = hbt->arg;
> +
> +                               top->zero = !top->zero;
> +                       }
> +                       continue;
>                 case K_F1:
>                 case 'h':
>                 case '?':
> --
> 2.0.0
>

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [RFC/PATCH 1/2] perf top: Fix -z option behavior
  2014-08-12 19:01 ` [RFC/PATCH 1/2] perf top: Fix -z option behavior David Ahern
@ 2014-08-13  4:52   ` Namhyung Kim
  2014-08-13  5:47     ` David Ahern
  0 siblings, 1 reply; 15+ messages in thread
From: Namhyung Kim @ 2014-08-13  4:52 UTC (permalink / raw)
  To: David Ahern
  Cc: Arnaldo Carvalho de Melo, Stephane Eranian, Peter Zijlstra,
	Ingo Molnar, Paul Mackerras, Namhyung Kim, LKML, Jiri Olsa

Hi David,

On Tue, 12 Aug 2014 13:01:41 -0600, David Ahern wrote:
> On 8/12/14, 2:16 AM, Namhyung Kim wrote:
>> The current -z option does almost nothing.  It doesn't zero the
>> existing samples so that we can see profiles of exited process after
>> last refresh.  It seems it only affects annotation.
>>
>> This patch clears existing entries before processing if -z option is
>> given.  For this original decaying logic also moved before processing.
>
> This option was broken somewhere recently. I am on vacation for
> another week, so I can't do a git bisect myself but I recall it worked
> a year or so ago. Try v3.4 as a start point.

Are you sure?  I don't recall seeing any big change in this area so I
guess the problem existed since long time ago.  In fact I couldn't find
a logic to zero/clear out existing hist entries in a hists..

Thanks,
Namhyung

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [RFC/PATCH 1/2] perf top: Fix -z option behavior
  2014-08-13  4:52   ` Namhyung Kim
@ 2014-08-13  5:47     ` David Ahern
  2014-08-13 20:20       ` Arnaldo Carvalho de Melo
  0 siblings, 1 reply; 15+ messages in thread
From: David Ahern @ 2014-08-13  5:47 UTC (permalink / raw)
  To: Namhyung Kim
  Cc: Arnaldo Carvalho de Melo, Stephane Eranian, Peter Zijlstra,
	Ingo Molnar, Paul Mackerras, Namhyung Kim, LKML, Jiri Olsa

On 8/12/14, 10:52 PM, Namhyung Kim wrote:

> Are you sure?  I don't recall seeing any big change in this area so I
> guess the problem existed since long time ago.  In fact I couldn't find
> a logic to zero/clear out existing hist entries in a hists..

Just gave a quick try. v3.4 fails; v3.1 works.

David

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [RFC/PATCH 1/2] perf top: Fix -z option behavior
  2014-08-13  5:47     ` David Ahern
@ 2014-08-13 20:20       ` Arnaldo Carvalho de Melo
  0 siblings, 0 replies; 15+ messages in thread
From: Arnaldo Carvalho de Melo @ 2014-08-13 20:20 UTC (permalink / raw)
  To: David Ahern
  Cc: Namhyung Kim, Stephane Eranian, Peter Zijlstra, Ingo Molnar,
	Paul Mackerras, Namhyung Kim, LKML, Jiri Olsa

Em Tue, Aug 12, 2014 at 11:47:07PM -0600, David Ahern escreveu:
> On 8/12/14, 10:52 PM, Namhyung Kim wrote:
> 
> >Are you sure?  I don't recall seeing any big change in this area so I
> >guess the problem existed since long time ago.  In fact I couldn't find
> >a logic to zero/clear out existing hist entries in a hists..
> 
> Just gave a quick try. v3.4 fails; v3.1 works.

I would say it was this one, without bisecting:

--------------------------------------------------------------------------------

commit ab81f3fd350c510730adb1ca40ef55c2b2952121
Author: Arnaldo Carvalho de Melo <acme@redhat.com>
Date:   Wed Oct 5 19:16:15 2011 -0300

    perf top: Reuse the 'report' hist_entry/hists classes
    
    This actually fixes several problems we had in the old 'perf top':
    
    1. Unresolved symbols not show, limitation that came from the old
       "KernelTop" codebase, to solve it we would need to do changes
       that would make sym_entry have most of the hist_entry fields.
    2. It was using the number of samples, not the sum of sample->period.
    
    And brings the --sort code that allows us to have all the views in
    'perf report', for instance:
<SNIP>
--------------------------------------------------------------------------------

It ended up only honouring the zeroing logic for the annotation stuff.

Anyway, reviewing Namhyung proposed fix now.

- Arnaldo

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [RFC/PATCH 1/2] perf top: Fix -z option behavior
  2014-08-12  8:16 [RFC/PATCH 1/2] perf top: Fix -z option behavior Namhyung Kim
                   ` (2 preceding siblings ...)
  2014-08-12 23:05 ` Stephane Eranian
@ 2014-08-13 20:27 ` Arnaldo Carvalho de Melo
  2014-08-19  6:07   ` Namhyung Kim
  2014-08-14  8:49 ` [tip:perf/core] " tip-bot for Namhyung Kim
  4 siblings, 1 reply; 15+ messages in thread
From: Arnaldo Carvalho de Melo @ 2014-08-13 20:27 UTC (permalink / raw)
  To: Namhyung Kim
  Cc: Peter Zijlstra, Ingo Molnar, Paul Mackerras, Namhyung Kim, LKML,
	Stephane Eranian, Jiri Olsa, David Ahern

Em Tue, Aug 12, 2014 at 05:16:05PM +0900, Namhyung Kim escreveu:
> The current -z option does almost nothing.  It doesn't zero the
> existing samples so that we can see profiles of exited process after
> last refresh.  It seems it only affects annotation.
> 
> This patch clears existing entries before processing if -z option is
> given.  For this original decaying logic also moved before processing.

So, this is two things bolted into one, i.e. it is not stated here why
decaying needs to be done before resorting. I bet its because since
we're zeroing everything, no need to decay anything, right?

Stating more clearly what is the intent and the reason for changes helps
reviewing.

Anyway, will add a note about that and apply the change.

Also, the delete entries thing could zero total stats in struct hists,
which is not a problem currently, because, IIRC, the collapse/resort
logic will do that when it rotates the hists, but if we ever want to
just delete events and then add a bunch of events without resorting, we
will end up with bogus stats that will have the sum of the old events
stats with the new ones.

Thanks!

- Arnaldo
 
> Reported-by: Stephane Eranian <eranian@google.com>
> Signed-off-by: Namhyung Kim <namhyung@kernel.org>
> ---
>  tools/perf/builtin-top.c | 23 +++++++++++++++++------
>  tools/perf/util/hist.c   | 22 ++++++++++++++++++++++
>  tools/perf/util/hist.h   |  1 +
>  3 files changed, 40 insertions(+), 6 deletions(-)
> 
> diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c
> index 4fb6f726271c..e486501b2067 100644
> --- a/tools/perf/builtin-top.c
> +++ b/tools/perf/builtin-top.c
> @@ -276,11 +276,17 @@ static void perf_top__print_sym_table(struct perf_top *top)
>  		return;
>  	}
>  
> +	if (top->zero) {
> +		hists__delete_entries(&top->sym_evsel->hists);
> +	} else {
> +		hists__decay_entries(&top->sym_evsel->hists,
> +				     top->hide_user_symbols,
> +				     top->hide_kernel_symbols);
> +	}
> +
>  	hists__collapse_resort(&top->sym_evsel->hists, NULL);
>  	hists__output_resort(&top->sym_evsel->hists);
> -	hists__decay_entries(&top->sym_evsel->hists,
> -			     top->hide_user_symbols,
> -			     top->hide_kernel_symbols);
> +
>  	hists__output_recalc_col_len(&top->sym_evsel->hists,
>  				     top->print_entries - printed);
>  	putchar('\n');
> @@ -542,11 +548,16 @@ static void perf_top__sort_new_samples(void *arg)
>  	if (t->evlist->selected != NULL)
>  		t->sym_evsel = t->evlist->selected;
>  
> +	if (t->zero) {
> +		hists__delete_entries(&t->sym_evsel->hists);
> +	} else {
> +		hists__decay_entries(&t->sym_evsel->hists,
> +				     t->hide_user_symbols,
> +				     t->hide_kernel_symbols);
> +	}
> +
>  	hists__collapse_resort(&t->sym_evsel->hists, NULL);
>  	hists__output_resort(&t->sym_evsel->hists);
> -	hists__decay_entries(&t->sym_evsel->hists,
> -			     t->hide_user_symbols,
> -			     t->hide_kernel_symbols);
>  }
>  
>  static void *display_thread_tui(void *arg)
> diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c
> index 30df6187ee02..86569fa3651d 100644
> --- a/tools/perf/util/hist.c
> +++ b/tools/perf/util/hist.c
> @@ -277,6 +277,28 @@ void hists__decay_entries(struct hists *hists, bool zap_user, bool zap_kernel)
>  	}
>  }
>  
> +void hists__delete_entries(struct hists *hists)
> +{
> +	struct rb_node *next = rb_first(&hists->entries);
> +	struct hist_entry *n;
> +
> +	while (next) {
> +		n = rb_entry(next, struct hist_entry, rb_node);
> +		next = rb_next(&n->rb_node);
> +
> +		rb_erase(&n->rb_node, &hists->entries);
> +
> +		if (sort__need_collapse)
> +			rb_erase(&n->rb_node_in, &hists->entries_collapsed);
> +
> +		--hists->nr_entries;
> +		if (!n->filtered)
> +			--hists->nr_non_filtered_entries;
> +
> +		hist_entry__free(n);
> +	}
> +}
> +
>  /*
>   * histogram, sorted on item, collects periods
>   */
> diff --git a/tools/perf/util/hist.h b/tools/perf/util/hist.h
> index 95405a8fbd95..8c9c70e18cbb 100644
> --- a/tools/perf/util/hist.h
> +++ b/tools/perf/util/hist.h
> @@ -152,6 +152,7 @@ void hists__output_resort(struct hists *hists);
>  void hists__collapse_resort(struct hists *hists, struct ui_progress *prog);
>  
>  void hists__decay_entries(struct hists *hists, bool zap_user, bool zap_kernel);
> +void hists__delete_entries(struct hists *hists);
>  void hists__output_recalc_col_len(struct hists *hists, int max_rows);
>  
>  u64 hists__total_period(struct hists *hists);
> -- 
> 2.0.0

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 2/2] perf top: Handle 'z' key for toggle zeroing samples in TUI
  2014-08-12 23:07   ` Stephane Eranian
@ 2014-08-13 20:37     ` Arnaldo Carvalho de Melo
  2014-08-13 20:47       ` Stephane Eranian
  0 siblings, 1 reply; 15+ messages in thread
From: Arnaldo Carvalho de Melo @ 2014-08-13 20:37 UTC (permalink / raw)
  To: Stephane Eranian
  Cc: Namhyung Kim, Peter Zijlstra, Ingo Molnar, Paul Mackerras,
	Namhyung Kim, LKML, Jiri Olsa, David Ahern

Em Wed, Aug 13, 2014 at 01:07:30AM +0200, Stephane Eranian escreveu:
> On Tue, Aug 12, 2014 at 10:16 AM, Namhyung Kim <namhyung@kernel.org> wrote:
> > The perf top TUI lacks 'z' key support to toggle sample zeroing.
> > Add it.
> >
> Works for me.
> Tested-by: Stephane Eranian <eranian@google.com>

One thing that can be improved: Make it trigger a refresh in the right
after 'z' is pressed.

Also, this toggles the zeroing before each sample, it would be nice to
have a visual cue that this is in effect, probably in the first line in
the screen, perhaps on the far right, something like [z] when this is in
effect and nothing when not.

Right now the way to figure this out is to observe the number of
samples, if it increases monotonically, zeroing before refresh is not in
effect, if it goes from a high number to a smaller or vice versa,
zeroing is in effect :-)

Anyway, applied, people wanting this feature can figure this out, what I
suggested is just polishing.

Thanks!

- Arnaldo
 
> > Reported-by: Stephane Eranian <eranian@google.com>
> > Signed-off-by: Namhyung Kim <namhyung@kernel.org>
> > ---
> >  tools/perf/ui/browsers/hists.c | 9 +++++++++
> >  1 file changed, 9 insertions(+)
> >
> > diff --git a/tools/perf/ui/browsers/hists.c b/tools/perf/ui/browsers/hists.c
> > index 045c1e16ac59..381c085a41b8 100644
> > --- a/tools/perf/ui/browsers/hists.c
> > +++ b/tools/perf/ui/browsers/hists.c
> > @@ -10,6 +10,7 @@
> >  #include "../../util/pstack.h"
> >  #include "../../util/sort.h"
> >  #include "../../util/util.h"
> > +#include "../../util/top.h"
> >  #include "../../arch/common.h"
> >
> >  #include "../browser.h"
> > @@ -1530,6 +1531,7 @@ static int perf_evsel__hists_browse(struct perf_evsel *evsel, int nr_events,
> >         "P             Print histograms to perf.hist.N\n"
> >         "t             Zoom into current Thread\n"
> >         "V             Verbose (DSO names in callchains, etc)\n"
> > +       "z             Toggle zeroing of samples\n"
> >         "/             Filter symbol by name";
> >
> >         if (browser == NULL)
> > @@ -1630,6 +1632,13 @@ static int perf_evsel__hists_browse(struct perf_evsel *evsel, int nr_events,
> >                 case 'F':
> >                         symbol_conf.filter_relative ^= 1;
> >                         continue;
> > +               case 'z':
> > +                       if (!is_report_browser(hbt)) {
> > +                               struct perf_top *top = hbt->arg;
> > +
> > +                               top->zero = !top->zero;
> > +                       }
> > +                       continue;
> >                 case K_F1:
> >                 case 'h':
> >                 case '?':
> > --
> > 2.0.0
> >

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 2/2] perf top: Handle 'z' key for toggle zeroing samples in TUI
  2014-08-13 20:37     ` Arnaldo Carvalho de Melo
@ 2014-08-13 20:47       ` Stephane Eranian
  2014-08-19  6:09         ` Namhyung Kim
  0 siblings, 1 reply; 15+ messages in thread
From: Stephane Eranian @ 2014-08-13 20:47 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: Namhyung Kim, Peter Zijlstra, Ingo Molnar, Paul Mackerras,
	Namhyung Kim, LKML, Jiri Olsa, David Ahern

On Wed, Aug 13, 2014 at 10:37 PM, Arnaldo Carvalho de Melo
<acme@kernel.org> wrote:
>
> Em Wed, Aug 13, 2014 at 01:07:30AM +0200, Stephane Eranian escreveu:
> > On Tue, Aug 12, 2014 at 10:16 AM, Namhyung Kim <namhyung@kernel.org> wrote:
> > > The perf top TUI lacks 'z' key support to toggle sample zeroing.
> > > Add it.
> > >
> > Works for me.
> > Tested-by: Stephane Eranian <eranian@google.com>
>
> One thing that can be improved: Make it trigger a refresh in the right
> after 'z' is pressed.
>
> Also, this toggles the zeroing before each sample, it would be nice to
> have a visual cue that this is in effect, probably in the first line in
> the screen, perhaps on the far right, something like [z] when this is in
> effect and nothing when not.
>
I agree. Had to run a test on the side to verify that it was actually doing
the right thing.

>
> Right now the way to figure this out is to observe the number of
> samples, if it increases monotonically, zeroing before refresh is not in
> effect, if it goes from a high number to a smaller or vice versa,
> zeroing is in effect :-)
>
> Anyway, applied, people wanting this feature can figure this out, what I
> suggested is just polishing.
>
We need to visual cue.

>
> Thanks!
>
> - Arnaldo
>
> > > Reported-by: Stephane Eranian <eranian@google.com>
> > > Signed-off-by: Namhyung Kim <namhyung@kernel.org>
> > > ---
> > >  tools/perf/ui/browsers/hists.c | 9 +++++++++
> > >  1 file changed, 9 insertions(+)
> > >
> > > diff --git a/tools/perf/ui/browsers/hists.c b/tools/perf/ui/browsers/hists.c
> > > index 045c1e16ac59..381c085a41b8 100644
> > > --- a/tools/perf/ui/browsers/hists.c
> > > +++ b/tools/perf/ui/browsers/hists.c
> > > @@ -10,6 +10,7 @@
> > >  #include "../../util/pstack.h"
> > >  #include "../../util/sort.h"
> > >  #include "../../util/util.h"
> > > +#include "../../util/top.h"
> > >  #include "../../arch/common.h"
> > >
> > >  #include "../browser.h"
> > > @@ -1530,6 +1531,7 @@ static int perf_evsel__hists_browse(struct perf_evsel *evsel, int nr_events,
> > >         "P             Print histograms to perf.hist.N\n"
> > >         "t             Zoom into current Thread\n"
> > >         "V             Verbose (DSO names in callchains, etc)\n"
> > > +       "z             Toggle zeroing of samples\n"
> > >         "/             Filter symbol by name";
> > >
> > >         if (browser == NULL)
> > > @@ -1630,6 +1632,13 @@ static int perf_evsel__hists_browse(struct perf_evsel *evsel, int nr_events,
> > >                 case 'F':
> > >                         symbol_conf.filter_relative ^= 1;
> > >                         continue;
> > > +               case 'z':
> > > +                       if (!is_report_browser(hbt)) {
> > > +                               struct perf_top *top = hbt->arg;
> > > +
> > > +                               top->zero = !top->zero;
> > > +                       }
> > > +                       continue;
> > >                 case K_F1:
> > >                 case 'h':
> > >                 case '?':
> > > --
> > > 2.0.0
> > >

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [tip:perf/core] perf top: Fix -z option behavior
  2014-08-12  8:16 [RFC/PATCH 1/2] perf top: Fix -z option behavior Namhyung Kim
                   ` (3 preceding siblings ...)
  2014-08-13 20:27 ` Arnaldo Carvalho de Melo
@ 2014-08-14  8:49 ` tip-bot for Namhyung Kim
  4 siblings, 0 replies; 15+ messages in thread
From: tip-bot for Namhyung Kim @ 2014-08-14  8:49 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: acme, linux-kernel, paulus, eranian, hpa, mingo, a.p.zijlstra,
	namhyung.kim, namhyung, jolsa, dsahern, tglx

Commit-ID:  701937bd59cc94b6913086feb62f05ae565ff2de
Gitweb:     http://git.kernel.org/tip/701937bd59cc94b6913086feb62f05ae565ff2de
Author:     Namhyung Kim <namhyung@kernel.org>
AuthorDate: Tue, 12 Aug 2014 17:16:05 +0900
Committer:  Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Wed, 13 Aug 2014 17:28:07 -0300

perf top: Fix -z option behavior

The current -z option does almost nothing.  It doesn't zero the existing
samples so that we can see profiles of exited process after last
refresh.  It seems it only affects annotation.

This patch clears existing entries before processing if -z option is
given.  For this original decaying logic also moved before processing.

Reported-by: Stephane Eranian <eranian@google.com>
Tested-by: Stephane Eranian <eranian@google.com>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung.kim@lge.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/r/1407831366-28892-1-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/builtin-top.c | 23 +++++++++++++++++------
 tools/perf/util/hist.c   | 22 ++++++++++++++++++++++
 tools/perf/util/hist.h   |  1 +
 3 files changed, 40 insertions(+), 6 deletions(-)

diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c
index 4b0e15c..87a6615 100644
--- a/tools/perf/builtin-top.c
+++ b/tools/perf/builtin-top.c
@@ -276,11 +276,17 @@ static void perf_top__print_sym_table(struct perf_top *top)
 		return;
 	}
 
+	if (top->zero) {
+		hists__delete_entries(&top->sym_evsel->hists);
+	} else {
+		hists__decay_entries(&top->sym_evsel->hists,
+				     top->hide_user_symbols,
+				     top->hide_kernel_symbols);
+	}
+
 	hists__collapse_resort(&top->sym_evsel->hists, NULL);
 	hists__output_resort(&top->sym_evsel->hists);
-	hists__decay_entries(&top->sym_evsel->hists,
-			     top->hide_user_symbols,
-			     top->hide_kernel_symbols);
+
 	hists__output_recalc_col_len(&top->sym_evsel->hists,
 				     top->print_entries - printed);
 	putchar('\n');
@@ -542,11 +548,16 @@ static void perf_top__sort_new_samples(void *arg)
 	if (t->evlist->selected != NULL)
 		t->sym_evsel = t->evlist->selected;
 
+	if (t->zero) {
+		hists__delete_entries(&t->sym_evsel->hists);
+	} else {
+		hists__decay_entries(&t->sym_evsel->hists,
+				     t->hide_user_symbols,
+				     t->hide_kernel_symbols);
+	}
+
 	hists__collapse_resort(&t->sym_evsel->hists, NULL);
 	hists__output_resort(&t->sym_evsel->hists);
-	hists__decay_entries(&t->sym_evsel->hists,
-			     t->hide_user_symbols,
-			     t->hide_kernel_symbols);
 }
 
 static void *display_thread_tui(void *arg)
diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c
index 30df618..86569fa 100644
--- a/tools/perf/util/hist.c
+++ b/tools/perf/util/hist.c
@@ -277,6 +277,28 @@ void hists__decay_entries(struct hists *hists, bool zap_user, bool zap_kernel)
 	}
 }
 
+void hists__delete_entries(struct hists *hists)
+{
+	struct rb_node *next = rb_first(&hists->entries);
+	struct hist_entry *n;
+
+	while (next) {
+		n = rb_entry(next, struct hist_entry, rb_node);
+		next = rb_next(&n->rb_node);
+
+		rb_erase(&n->rb_node, &hists->entries);
+
+		if (sort__need_collapse)
+			rb_erase(&n->rb_node_in, &hists->entries_collapsed);
+
+		--hists->nr_entries;
+		if (!n->filtered)
+			--hists->nr_non_filtered_entries;
+
+		hist_entry__free(n);
+	}
+}
+
 /*
  * histogram, sorted on item, collects periods
  */
diff --git a/tools/perf/util/hist.h b/tools/perf/util/hist.h
index 95405a8..8c9c70e 100644
--- a/tools/perf/util/hist.h
+++ b/tools/perf/util/hist.h
@@ -152,6 +152,7 @@ void hists__output_resort(struct hists *hists);
 void hists__collapse_resort(struct hists *hists, struct ui_progress *prog);
 
 void hists__decay_entries(struct hists *hists, bool zap_user, bool zap_kernel);
+void hists__delete_entries(struct hists *hists);
 void hists__output_recalc_col_len(struct hists *hists, int max_rows);
 
 u64 hists__total_period(struct hists *hists);

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [tip:perf/core] perf top: Handle 'z' key for toggle zeroing samples in TUI
  2014-08-12  8:16 ` [PATCH 2/2] perf top: Handle 'z' key for toggle zeroing samples in TUI Namhyung Kim
  2014-08-12 23:07   ` Stephane Eranian
@ 2014-08-14  8:49   ` tip-bot for Namhyung Kim
  1 sibling, 0 replies; 15+ messages in thread
From: tip-bot for Namhyung Kim @ 2014-08-14  8:49 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: acme, linux-kernel, paulus, eranian, hpa, mingo, a.p.zijlstra,
	namhyung.kim, namhyung, jolsa, dsahern, tglx

Commit-ID:  42337a222c93cd22864f20ef9b157765ab1086a0
Gitweb:     http://git.kernel.org/tip/42337a222c93cd22864f20ef9b157765ab1086a0
Author:     Namhyung Kim <namhyung@kernel.org>
AuthorDate: Tue, 12 Aug 2014 17:16:06 +0900
Committer:  Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Wed, 13 Aug 2014 17:29:37 -0300

perf top: Handle 'z' key for toggle zeroing samples in TUI

The perf top TUI lacks 'z' key support to toggle sample zeroing.
Add it.

Reported-by: Stephane Eranian <eranian@google.com>
Tested-by: Stephane Eranian <eranian@google.com>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung.kim@lge.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/r/1407831366-28892-2-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/ui/browsers/hists.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/tools/perf/ui/browsers/hists.c b/tools/perf/ui/browsers/hists.c
index 1818d12..4892480 100644
--- a/tools/perf/ui/browsers/hists.c
+++ b/tools/perf/ui/browsers/hists.c
@@ -10,6 +10,7 @@
 #include "../../util/pstack.h"
 #include "../../util/sort.h"
 #include "../../util/util.h"
+#include "../../util/top.h"
 #include "../../arch/common.h"
 
 #include "../browser.h"
@@ -1532,6 +1533,7 @@ static int perf_evsel__hists_browse(struct perf_evsel *evsel, int nr_events,
 	"P             Print histograms to perf.hist.N\n"
 	"t             Zoom into current Thread\n"
 	"V             Verbose (DSO names in callchains, etc)\n"
+	"z             Toggle zeroing of samples\n"
 	"/             Filter symbol by name";
 
 	if (browser == NULL)
@@ -1632,6 +1634,13 @@ static int perf_evsel__hists_browse(struct perf_evsel *evsel, int nr_events,
 		case 'F':
 			symbol_conf.filter_relative ^= 1;
 			continue;
+		case 'z':
+			if (!is_report_browser(hbt)) {
+				struct perf_top *top = hbt->arg;
+
+				top->zero = !top->zero;
+			}
+			continue;
 		case K_F1:
 		case 'h':
 		case '?':

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* Re: [RFC/PATCH 1/2] perf top: Fix -z option behavior
  2014-08-13 20:27 ` Arnaldo Carvalho de Melo
@ 2014-08-19  6:07   ` Namhyung Kim
  0 siblings, 0 replies; 15+ messages in thread
From: Namhyung Kim @ 2014-08-19  6:07 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: Peter Zijlstra, Ingo Molnar, Paul Mackerras, Namhyung Kim, LKML,
	Stephane Eranian, Jiri Olsa, David Ahern

On Wed, 13 Aug 2014 17:27:56 -0300, Arnaldo Carvalho de Melo wrote:
> Em Tue, Aug 12, 2014 at 05:16:05PM +0900, Namhyung Kim escreveu:
>> The current -z option does almost nothing.  It doesn't zero the
>> existing samples so that we can see profiles of exited process after
>> last refresh.  It seems it only affects annotation.
>> 
>> This patch clears existing entries before processing if -z option is
>> given.  For this original decaying logic also moved before processing.
>
> So, this is two things bolted into one, i.e. it is not stated here why
> decaying needs to be done before resorting. I bet its because since
> we're zeroing everything, no need to decay anything, right?

Exactly.

>
> Stating more clearly what is the intent and the reason for changes helps
> reviewing.

Yep, will do better next time.

>
> Anyway, will add a note about that and apply the change.

Thank you!

>
> Also, the delete entries thing could zero total stats in struct hists,
> which is not a problem currently, because, IIRC, the collapse/resort
> logic will do that when it rotates the hists, but if we ever want to
> just delete events and then add a bunch of events without resorting, we
> will end up with bogus stats that will have the sum of the old events
> stats with the new ones.

Right.  I'll send the fix.

Thanks,
Namhyung

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 2/2] perf top: Handle 'z' key for toggle zeroing samples in TUI
  2014-08-13 20:47       ` Stephane Eranian
@ 2014-08-19  6:09         ` Namhyung Kim
  0 siblings, 0 replies; 15+ messages in thread
From: Namhyung Kim @ 2014-08-19  6:09 UTC (permalink / raw)
  To: Stephane Eranian
  Cc: Arnaldo Carvalho de Melo, Peter Zijlstra, Ingo Molnar,
	Paul Mackerras, Namhyung Kim, LKML, Jiri Olsa, David Ahern

On Wed, 13 Aug 2014 22:47:43 +0200, Stephane Eranian wrote:
> On Wed, Aug 13, 2014 at 10:37 PM, Arnaldo Carvalho de Melo
> <acme@kernel.org> wrote:
>>
>> Em Wed, Aug 13, 2014 at 01:07:30AM +0200, Stephane Eranian escreveu:
>> > On Tue, Aug 12, 2014 at 10:16 AM, Namhyung Kim <namhyung@kernel.org> wrote:
>> > > The perf top TUI lacks 'z' key support to toggle sample zeroing.
>> > > Add it.
>> > >
>> > Works for me.
>> > Tested-by: Stephane Eranian <eranian@google.com>
>>
>> One thing that can be improved: Make it trigger a refresh in the right
>> after 'z' is pressed.
>>
>> Also, this toggles the zeroing before each sample, it would be nice to
>> have a visual cue that this is in effect, probably in the first line in
>> the screen, perhaps on the far right, something like [z] when this is in
>> effect and nothing when not.
>>
> I agree. Had to run a test on the side to verify that it was actually doing
> the right thing.
>
>>
>> Right now the way to figure this out is to observe the number of
>> samples, if it increases monotonically, zeroing before refresh is not in
>> effect, if it goes from a high number to a smaller or vice versa,
>> zeroing is in effect :-)
>>
>> Anyway, applied, people wanting this feature can figure this out, what I
>> suggested is just polishing.
>>
> We need to visual cue.

Got it.  Will add [z] on the header line.

Thanks,
Namhyung

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2014-08-19  6:09 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-08-12  8:16 [RFC/PATCH 1/2] perf top: Fix -z option behavior Namhyung Kim
2014-08-12  8:16 ` [PATCH 2/2] perf top: Handle 'z' key for toggle zeroing samples in TUI Namhyung Kim
2014-08-12 23:07   ` Stephane Eranian
2014-08-13 20:37     ` Arnaldo Carvalho de Melo
2014-08-13 20:47       ` Stephane Eranian
2014-08-19  6:09         ` Namhyung Kim
2014-08-14  8:49   ` [tip:perf/core] " tip-bot for Namhyung Kim
2014-08-12 19:01 ` [RFC/PATCH 1/2] perf top: Fix -z option behavior David Ahern
2014-08-13  4:52   ` Namhyung Kim
2014-08-13  5:47     ` David Ahern
2014-08-13 20:20       ` Arnaldo Carvalho de Melo
2014-08-12 23:05 ` Stephane Eranian
2014-08-13 20:27 ` Arnaldo Carvalho de Melo
2014-08-19  6:07   ` Namhyung Kim
2014-08-14  8:49 ` [tip:perf/core] " tip-bot for Namhyung Kim

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.