lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1499225752-2959-1-git-send-email-changbin.du@intel.com>
Date:   Wed,  5 Jul 2017 11:35:52 +0800
From:   changbin.du@...el.com
To:     jolsa@...nel.org
Cc:     peterz@...radead.org, mingo@...hat.com,
        alexander.shishkin@...ux.intel.com, linux-kernel@...r.kernel.org,
        changbin.du@...el.com
Subject: [PATCH v3] perf sort: only insert overhead && overhead_children when no overhead* field given

From: Changbin Du <changbin.du@...el.com>

If we always insert 'overhead' and 'overhead_children' as sort keys,
this make it impossible to sort as overhead (which displayed as Self)
first.Ths will be a problem if the data is collected with call-graph
enabled. Then we never can sort the result as self-overhead on this
data. And sometimes the data is hard to collect.

> perf record -ag
> perf report -s overhead,sym

Samples: 7K of event 'cycles', Event count (approx.): 865138253
  Children      Self  Symbol
  +   26.41%     0.00%  [k] verify_cpu
  +   26.37%     0.04%  [k] cpu_startup_entry
  +   25.93%     0.27%  [k] do_idle
  +   19.88%     0.00%  [k] start_secondary
  ....

I intend to sort as 'Self', but actually it sort as 'Children'.

This patch fix this by only insert overhead && overhead_children
when no overhead* field given.

Signed-off-by: Changbin Du <changbin.du@...el.com>
---
v3: Add comment in code from Jiri
v2: Add the example in commit message.

---
 tools/perf/util/sort.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/tools/perf/util/sort.c b/tools/perf/util/sort.c
index 8b327c9..9e087fb 100644
--- a/tools/perf/util/sort.c
+++ b/tools/perf/util/sort.c
@@ -2635,6 +2635,13 @@ static char *setup_overhead(char *keys)
 	if (sort__mode == SORT_MODE__DIFF)
 		return keys;
 
+	/**
+	 * User already stated overhead within -s option,
+	 * do not mangle with that.
+	 */
+	if (strstr(keys, "overhead"))
+		return keys;
+
 	keys = prefix_if_not_in("overhead", keys);
 
 	if (symbol_conf.cumulate_callchain)
-- 
2.7.4

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ