Przeglądaj źródła

perf report: Separate out idle threads

Introduce the special comm name [idle] for idle theads.

Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
Cc: Marcelo Tosatti <mtosatti@redhat.com>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: John Kacur <jkacur@redhat.com>
LKML-Reference: <new-submission>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Peter Zijlstra 16 lat temu
rodzic
commit
436224a6d8
1 zmienionych plików z 13 dodań i 0 usunięć
  1. 13 0
      Documentation/perf_counter/builtin-report.c

+ 13 - 0
Documentation/perf_counter/builtin-report.c

@@ -612,6 +612,17 @@ static size_t output__fprintf(FILE *fp, uint64_t total_samples)
 	return ret;
 	return ret;
 }
 }
 
 
+static void register_idle_thread(void)
+{
+	struct thread *thread = threads__findnew(0);
+
+	if (thread == NULL ||
+			thread__set_comm(thread, "[idle]")) {
+		fprintf(stderr, "problem inserting idle task.\n");
+		exit(-1);
+	}
+}
+
 
 
 static int __cmd_report(void)
 static int __cmd_report(void)
 {
 {
@@ -626,6 +637,8 @@ static int __cmd_report(void)
 	char cwd[PATH_MAX], *cwdp = cwd;
 	char cwd[PATH_MAX], *cwdp = cwd;
 	int cwdlen;
 	int cwdlen;
 
 
+	register_idle_thread();
+
 	input = open(input_name, O_RDONLY);
 	input = open(input_name, O_RDONLY);
 	if (input < 0) {
 	if (input < 0) {
 		perror("failed to open file");
 		perror("failed to open file");