A Bug Inquiry in linux/tools/perf/builtin-record.c

From: xiakaixu
Date: Tue Feb 18 2014 - 20:49:30 EST


Hi all,

There is a bug found in my work when running "perf record". The basic information
is here. As we know, perf record is a parent process and the programme traced is
a child process when running "perf record". Sometimes the child process become
zombie state and disappear until the parent process is killed. The bug stays in linux/
tools/perf/builtin-record.c.
*********************************************************************
static int __cmd_record(struct perf_record *rec, int argc, const char **argv)
......
if (hits == rec->samples) {
if (done)
break;
err = poll(evsel_list->pollfd, evsel_list->nr_fds, -1);
waking++;
}
......
*********************************************************************
The parent process still call the function
poll(evsel_list->pollfd, evsel_list->nr_fds, -1) when the child process has exited
already, which caused a zombie process.

May I have your opinion ?
Waiting for your reply!

Best Regards
Kaixu Xia

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/