Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932385AbbDIHkR (ORCPT ); Thu, 9 Apr 2015 03:40:17 -0400 Received: from szxga01-in.huawei.com ([58.251.152.64]:61640 "EHLO szxga01-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751656AbbDIHkP (ORCPT ); Thu, 9 Apr 2015 03:40:15 -0400 Message-ID: <55262C8D.8080109@huawei.com> Date: Thu, 9 Apr 2015 15:38:53 +0800 From: He Kuang User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.3.0 MIME-Version: 1.0 To: Jiri Olsa CC: , , , , , , , =?windows-1252?Q?J=E9r=E9mie_Galarneau?= Subject: Re: [PATCH 2/2] perf data: Fix ctf_writer setupenv failure References: <1428468560-27401-1-git-send-email-hekuang@huawei.com> <1428468560-27401-2-git-send-email-hekuang@huawei.com> <20150408175947.GB20250@krava.redhat.com> In-Reply-To: <20150408175947.GB20250@krava.redhat.com> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [10.110.54.65] X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3444 Lines: 104 On 2015/4/9 1:59, Jiri Olsa wrote: > On Wed, Apr 08, 2015 at 12:49:20PM +0800, He Kuang wrote: >> Due to babeltrace commit: >> 7f800dc7c2a1 ("ir: make trace environment use bt_object") >> >> The trace->frozen flag is set in bt_ctf_trace_create_stream(), this flag >> is checked before adding environment field to trace, and causes >> ctf_writer__setup_env() failed. Fix this by setting all environment >> fields before bt_ctf_trace_create_stream(). >> >> Before this patch: >> $ perf data convert --to-ctf=ctf >> Error during CTF convert setup. > have you tested with the latest babeltrace sources? > this reminds me the bug they fixed recently, CCing Jeremie > > thanks, > jirka Yes, the latest babeltrace commit id: dfdad2587b12d454e7235e01508a266d83e3e264 >> After this patch: >> $ perf data convert --to-ctf=ctf >> [ perf data convert: Converted 'perf.data' into CTF data 'ctf' ] >> [ perf data convert: Converted and wrote 0.023 MB (596 samples) ] >> >> Signed-off-by: He Kuang >> --- >> tools/perf/util/data-convert-bt.c | 30 ++++++++++++++++++++---------- >> 1 file changed, 20 insertions(+), 10 deletions(-) >> >> diff --git a/tools/perf/util/data-convert-bt.c b/tools/perf/util/data-convert-bt.c >> index a5b89b9..718dc8a 100644 >> --- a/tools/perf/util/data-convert-bt.c >> +++ b/tools/perf/util/data-convert-bt.c >> @@ -604,6 +604,22 @@ static int setup_events(struct ctf_writer *cw, struct perf_session *session) >> return 0; >> } >> >> +static int ctf_writer__setup_stream(struct ctf_writer *cw) >> +{ >> + struct bt_ctf_stream *stream; >> + >> + /* CTF stream instance */ >> + stream = bt_ctf_writer_create_stream(cw->writer, cw->stream_class); >> + if (!stream) { >> + pr("Failed to create CTF stream.\n"); >> + return -1; >> + } >> + >> + cw->stream = stream; >> + >> + return 0; >> +} >> + >> static int ctf_writer__setup_env(struct ctf_writer *cw, >> struct perf_session *session) >> { >> @@ -725,7 +741,6 @@ static int ctf_writer__init(struct ctf_writer *cw, const char *path) >> { >> struct bt_ctf_writer *writer; >> struct bt_ctf_stream_class *stream_class; >> - struct bt_ctf_stream *stream; >> struct bt_ctf_clock *clock; >> >> /* CTF writer */ >> @@ -767,15 +782,6 @@ static int ctf_writer__init(struct ctf_writer *cw, const char *path) >> if (ctf_writer__init_data(cw)) >> goto err_cleanup; >> >> - /* CTF stream instance */ >> - stream = bt_ctf_writer_create_stream(writer, stream_class); >> - if (!stream) { >> - pr("Failed to create CTF stream.\n"); >> - goto err_cleanup; >> - } >> - >> - cw->stream = stream; >> - >> /* CTF clock writer setup */ >> if (bt_ctf_writer_add_clock(writer, clock)) { >> pr("Failed to assign CTF clock to writer.\n"); >> @@ -830,6 +836,10 @@ int bt_convert__perf2ctf(const char *input, const char *path, bool force) >> if (ctf_writer__setup_env(cw, session)) >> goto free_session; >> >> + /* CTF writer trace stream setup */ >> + if (ctf_writer__setup_stream(cw)) >> + goto free_session; >> + >> /* CTF events setup */ >> if (setup_events(cw, session)) >> goto free_session; >> -- >> 2.3.3.220.g9ab698f >> > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/