mirror of
https://github.com/adulau/aha.git
synced 2024-12-28 11:46:19 +00:00
perf tools: Synthetize the targeted process
Don't forget to also synthetize the targeted process from perf record or we'll miss its dso in the events and then we won't be able to deal with its build-id. We are missing it because it is created after the existing synthetized tasks but before the counters are enabled and can send its mapping event. Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Arnaldo Carvalho de Melo <acme@redhat.com> Cc: Mike Galbraith <efault@gmx.de> Cc: Paul Mackerras <paulus@samba.org> Cc: Hitoshi Mitake <mitake@dcl.info.waseda.ac.jp> LKML-Reference: <1257911467-28276-1-git-send-email-fweisbec@gmail.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
ca2b900f9a
commit
de8967214d
1 changed files with 10 additions and 1 deletions
|
@ -497,13 +497,22 @@ static int __cmd_record(int argc, const char **argv)
|
||||||
if (target_pid == -1 && argc) {
|
if (target_pid == -1 && argc) {
|
||||||
pid = fork();
|
pid = fork();
|
||||||
if (pid < 0)
|
if (pid < 0)
|
||||||
perror("failed to fork");
|
die("failed to fork");
|
||||||
|
|
||||||
if (!pid) {
|
if (!pid) {
|
||||||
if (execvp(argv[0], (char **)argv)) {
|
if (execvp(argv[0], (char **)argv)) {
|
||||||
perror(argv[0]);
|
perror(argv[0]);
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
/*
|
||||||
|
* Wait a bit for the execv'ed child to appear
|
||||||
|
* and be updated in /proc
|
||||||
|
* FIXME: Do you know a less heuristical solution?
|
||||||
|
*/
|
||||||
|
usleep(1000);
|
||||||
|
event__synthesize_thread(pid,
|
||||||
|
process_synthesized_event);
|
||||||
}
|
}
|
||||||
|
|
||||||
child_pid = pid;
|
child_pid = pid;
|
||||||
|
|
Loading…
Reference in a new issue