tip-bot for Arnaldo Carvalho de Melo
unread,Oct 26, 2012, 4:54:54 AM10/26/12You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to linux-ti...@vger.kernel.org, linux-...@vger.kernel.org, era...@google.com, pau...@samba.org, ac...@redhat.com, h...@zytor.com, mi...@kernel.org, pet...@infradead.org, efa...@gmx.de, namh...@gmail.com, jo...@redhat.com, fwei...@gmail.com, dsa...@gmail.com, tg...@linutronix.de
Commit-ID: ba361c92e73c771fcbbbd24c2c03c322e2de2e31
Gitweb:
http://git.kernel.org/tip/ba361c92e73c771fcbbbd24c2c03c322e2de2e31
Author: Arnaldo Carvalho de Melo <
ac...@redhat.com>
AuthorDate: Wed, 17 Oct 2012 18:50:13 -0300
Committer: Arnaldo Carvalho de Melo <
ac...@redhat.com>
CommitDate: Thu, 25 Oct 2012 10:37:15 -0200
perf tools: Don't stop synthesizing threads when one vanishes
The perf_event__synthesize_threads routine synthesizes all the existing
threads in the system, because we don't have any kernel facilities to
ask for PERF_RECORD_{FORK,MMAP,COMM} for existing threads.
It was returning an error as soon as one thread couldn't be synthesized,
which is a bit extreme when, for instance, a forkish workload is
running, like a kernel compile.
Cc: David Ahern <
dsa...@gmail.com>
Cc: Frederic Weisbecker <
fwei...@gmail.com>
Cc: Jiri Olsa <
jo...@redhat.com>
Cc: Mike Galbraith <
efa...@gmx.de>
Cc: Namhyung Kim <
namh...@gmail.com>
Cc: Paul Mackerras <
pau...@samba.org>
Cc: Peter Zijlstra <
pet...@infradead.org>
Cc: Stephane Eranian <
era...@google.com>
Link:
http://lkml.kernel.org/n/tip-i7oas1eodp...@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <
ac...@redhat.com>
---
tools/perf/util/event.c | 13 ++++++-------
1 files changed, 6 insertions(+), 7 deletions(-)
diff --git a/tools/perf/util/event.c b/tools/perf/util/event.c
index 0ae444e..ca9ca28 100644
--- a/tools/perf/util/event.c
+++ b/tools/perf/util/event.c
@@ -405,16 +405,15 @@ int perf_event__synthesize_threads(struct perf_tool *tool,
if (*end) /* only interested in proper numerical dirents */
continue;
-
- if (__event__synthesize_thread(comm_event, mmap_event, pid, 1,
- process, tool, machine) != 0) {
- err = -1;
- goto out_closedir;
- }
+ /*
+ * We may race with exiting thread, so don't stop just because
+ * one thread couldn't be synthesized.
+ */
+ __event__synthesize_thread(comm_event, mmap_event, pid, 1,
+ process, tool, machine);
}
err = 0;
-out_closedir:
closedir(proc);
out_free_mmap:
free(mmap_event);
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
majo...@vger.kernel.org
More majordomo info at
http://vger.kernel.org/majordomo-info.html
Please read the FAQ at
http://www.tux.org/lkml/