From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934264AbbENBnM (ORCPT ); Wed, 13 May 2015 21:43:12 -0400 Received: from szxga01-in.huawei.com ([58.251.152.64]:37935 "EHLO szxga01-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933232AbbENBnK (ORCPT ); Wed, 13 May 2015 21:43:10 -0400 From: desire To: , , , CC: , Subject: [PATCH] perf record: Fix zomible status of child process Date: Sat, 3 Jan 1970 11:54:47 +0700 Message-ID: <190487-3155-1-git-send-email-yuwang.yu@huawei.com> X-Mailer: git-send-email 1.7.9.5 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.67.54.237] X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org If the child process exited between the following code, the child process will keep zomible status and perf process will keep "poll" forever if (done || draining) break; ---//child process exit, done to 1 err = perf_evlist__poll(rec->evlist,-1); so, change timeout to 1 second. --- tools/perf/builtin-record.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c index c3efdfb..0b242eb 100644 --- a/tools/perf/builtin-record.c +++ b/tools/perf/builtin-record.c @@ -486,7 +486,9 @@ static int __cmd_record(struct record *rec, int argc, const char **argv) if (hits == rec->samples) { if (done || draining) break; - err = perf_evlist__poll(rec->evlist, -1); + do{ + err = perf_evlist__poll(rec->evlist, 1000); + }while((0 == err) && !done); /* * Propagate error, only if there's any. Ignore positive * number of returned events and interrupt error. -- 1.7.9.5