From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932284AbbDHSAG (ORCPT ); Wed, 8 Apr 2015 14:00:06 -0400 Received: from mx1.redhat.com ([209.132.183.28]:35293 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754387AbbDHSAC (ORCPT ); Wed, 8 Apr 2015 14:00:02 -0400 Date: Wed, 8 Apr 2015 19:59:47 +0200 From: Jiri Olsa To: He Kuang Cc: bigeasy@linutronix.de, jolsa@kernel.org, acme@kernel.org, a.p.zijlstra@chello.nl, mingo@redhat.com, wangnan0@huawei.com, linux-kernel@vger.kernel.org, =?iso-8859-1?Q?J=E9r=E9mie?= Galarneau Subject: Re: [PATCH 2/2] perf data: Fix ctf_writer setupenv failure Message-ID: <20150408175947.GB20250@krava.redhat.com> References: <1428468560-27401-1-git-send-email-hekuang@huawei.com> <1428468560-27401-2-git-send-email-hekuang@huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1428468560-27401-2-git-send-email-hekuang@huawei.com> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 > > 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 >