public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/6] perf tools: Fix hist_entry__filter() for hierarchy
@ 2016-03-08 15:06 Namhyung Kim
  2016-03-08 15:06 ` [PATCH 2/6] perf tools: Add more sort entry check functions Namhyung Kim
                   ` (4 more replies)
  0 siblings, 5 replies; 8+ messages in thread
From: Namhyung Kim @ 2016-03-08 15:06 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: Ingo Molnar, Peter Zijlstra, Jiri Olsa, LKML, David Ahern,
	Andi Kleen, Stephane Eranian, Wang Nan

When hierarchy mode is enabled each output format is in a separate hpp
list.  So when applying filter it should check all formats in the list.
Currently it only checks a single ->fmt field which was not set properly.

Signed-off-by: Namhyung Kim <namhyung@kernel.org>
---
 tools/perf/util/sort.c | 28 +++++++++++++++++++++-------
 1 file changed, 21 insertions(+), 7 deletions(-)

diff --git a/tools/perf/util/sort.c b/tools/perf/util/sort.c
index 041f236379e0..2e803847046c 100644
--- a/tools/perf/util/sort.c
+++ b/tools/perf/util/sort.c
@@ -1602,16 +1602,30 @@ int hist_entry__filter(struct hist_entry *he, int type, const void *arg)
 {
 	struct perf_hpp_fmt *fmt;
 	struct hpp_sort_entry *hse;
+	int ret = -1;
+	int r;
 
-	fmt = he->fmt;
-	if (fmt == NULL || !perf_hpp__is_sort_entry(fmt))
-		return -1;
+	perf_hpp_list__for_each_format(he->hpp_list, fmt) {
+		if (fmt == NULL || !perf_hpp__is_sort_entry(fmt))
+			continue;
 
-	hse = container_of(fmt, struct hpp_sort_entry, hpp);
-	if (hse->se->se_filter == NULL)
-		return -1;
+		hse = container_of(fmt, struct hpp_sort_entry, hpp);
+		if (hse->se->se_filter == NULL)
+			continue;
 
-	return hse->se->se_filter(he, type, arg);
+		/*
+		 * hist entry is filtered when all sort keys in the hpp list
+		 * is applied.  So if any sort key returns 0, it will *NOT*
+		 * filtered out.
+		 */
+		r = hse->se->se_filter(he, type, arg);
+		if (r == 0)
+			return 0;
+		if (r > 0)
+			ret = 1;
+	}
+
+	return ret;
 }
 
 static int __sort_dimension__add_hpp_sort(struct sort_dimension *sd, int level)
-- 
2.7.2

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

end of thread, other threads:[~2016-03-09 12:46 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-03-08 15:06 [PATCH 1/6] perf tools: Fix hist_entry__filter() for hierarchy Namhyung Kim
2016-03-08 15:06 ` [PATCH 2/6] perf tools: Add more sort entry check functions Namhyung Kim
2016-03-08 15:06 ` [PATCH 3/6] perf tools: Fix command line filters in hierarchy mode Namhyung Kim
2016-03-09  9:13   ` Jiri Olsa
2016-03-09 12:44     ` Namhyung Kim
2016-03-08 15:06 ` [PATCH 4/6] perf tools: Remove hist_entry->fmt field Namhyung Kim
2016-03-08 15:06 ` [PATCH 5/6] perf hists browser: Cleanup hist_browser__fprintf_hierarchy_entry() Namhyung Kim
2016-03-08 15:06 ` [PATCH 6/6] perf tools: Remove nr_sort_keys field Namhyung Kim

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox