perf_counter tools: include PID in perf-report output, tweak user/kernel printut
authorIngo Molnar <mingo@elte.hu>
Thu, 9 Apr 2009 07:50:04 +0000 (09:50 +0200)
committerIngo Molnar <mingo@elte.hu>
Thu, 9 Apr 2009 08:01:38 +0000 (10:01 +0200)
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>
Documentation/perf_counter/perf-report.cc

index 09da0ba482cde62f655aea37162c6cc3af7bb7df..1727317352bf71e4afc2d5c5bda18cdb19014163 100644 (file)
@@ -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);
 
This page took 0.02548 seconds and 5 git commands to generate.