cpudist: Attempt to resolve pid to command
authorSasha Goldshtein <goldshtn@gmail.com>
Wed, 29 Jun 2016 09:18:06 +0000 (02:18 -0700)
committerSasha Goldshtein <goldshtn@gmail.com>
Thu, 30 Jun 2016 13:38:27 +0000 (06:38 -0700)
Use `/proc/$PID/comm`, which may fail, for example if the original
process already exited. This may also produce misleading results
if another process got the same pid, but there's no way around this.

tools/cpudist.py

index 2df8172..8cd434c 100755 (executable)
@@ -192,7 +192,14 @@ while (1):
     if args.timestamp:
         print("%-8s\n" % strftime("%H:%M:%S"), end="")
 
-    dist.print_log2_hist(label, section, section_print_fn=int)
+    def pid_to_comm(pid):
+        try:
+            comm = open("/proc/%d/comm" % pid, "r").read()
+            return "%d %s" % (pid, comm)
+        except IOError:
+            return str(pid)
+
+    dist.print_log2_hist(label, section, section_print_fn=pid_to_comm)
     dist.clear()
 
     countdown -= 1