summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2009-04-09 09:50:04 +0200
committerIngo Molnar <mingo@elte.hu>2009-04-09 10:01:38 +0200
commitb3828ebb3901adfe989d8d4157ed28247aeec132 (patch)
tree0248af2c72bd6bc47b2cea01037304096065283b
parent888fcee066a2f4abd0d0bc9418c0535f9b01e6e5 (diff)
downloadblackbird-op-linux-b3828ebb3901adfe989d8d4157ed28247aeec132.tar.gz
blackbird-op-linux-b3828ebb3901adfe989d8d4157ed28247aeec132.zip
perf_counter tools: include PID in perf-report output, tweak user/kernel printut
It's handier than an <unknown> entry. Also replace the kernel/user column with a more compact version: 0.52 cc1 [k] page_fault 0.57 :0 [k] _spin_lock 0.59 :7506 [.] <unknown> 0.69 as [.] /usr/bin/as: <unknown> 0.76 cc1 [.] /lib64/libc-2.8.so: _int_free 0.92 cc1 [k] clear_page_c 1.00 :7465 [.] <unknown> 1.43 cc1 [.] /lib64/libc-2.8.so: memset 1.86 cc1 [.] /lib64/libc-2.8.so: _int_malloc 70.33 cc1 [.] /usr/libexec/gcc/x86_64-redhat-linux/4.3.2/cc1: <unknown> Signed-off-by: Ingo Molnar <mingo@elte.hu>
-rw-r--r--Documentation/perf_counter/perf-report.cc17
1 files changed, 12 insertions, 5 deletions
diff --git a/Documentation/perf_counter/perf-report.cc b/Documentation/perf_counter/perf-report.cc
index 09da0ba482cd..1727317352bf 100644
--- a/Documentation/perf_counter/perf-report.cc
+++ b/Documentation/perf_counter/perf-report.cc
@@ -277,10 +277,17 @@ static std::multimap<int, std::string> rev_hist;
static std::string resolve_comm(int pid)
{
- std::string comm = "<unknown>";
+ std::string comm;
+
std::map<int, std::string>::const_iterator ci = comms.find(pid);
- if (ci != comms.end())
+ if (ci != comms.end()) {
comm = ci->second;
+ } else {
+ char pid_str[30];
+
+ sprintf(pid_str, ":%d", pid);
+ comm = pid_str;
+ }
return comm;
}
@@ -422,13 +429,13 @@ more:
char output[1024];
if (event->header.misc & PERF_EVENT_MISC_KERNEL) {
- level = "[kernel]";
+ level = " [k] ";
sym = resolve_kernel_symbol(event->ip.ip);
} else if (event->header.misc & PERF_EVENT_MISC_USER) {
- level = "[ user ]";
+ level = " [.] ";
sym = resolve_user_symbol(event->ip.pid, event->ip.ip);
} else {
- level = "[ hv ]";
+ level = " [H] ";
}
comm = resolve_comm(event->ip.pid);
OpenPOWER on IntegriCloud