Re: [PATCHv3 0/8] perf tools: Add perf data CTF conversion

From: Jiri Olsa
Date: Sun Jan 25 2015 - 08:44:10 EST


On Fri, Jan 16, 2015 at 11:46:36AM -0500, Jérémie Galarneau wrote:
> On Fri, Jan 16, 2015 at 10:26 AM, Alexandre Montplaisir
> <alexmonthy@xxxxxxxxxxxx> wrote:
> > On 2015-01-15 03:57 PM, Alexandre Montplaisir wrote:
> >>
> >> Hi,
> >>
> >> I'm a developer for the Trace Compass tool (see links [3], [4] in Jiri's
> >> email). I can confirm that the generated CTF can be read correctly by our
> >> tool, which enables many views and analyses (Control Flow, CPU usage view,
> >> etc.) that were previously only available for LTTng traces.
> >>
> >> Some of our users also use perf extensively, and are looking forward to
> >> this feature! Is there any ETA as to when this will be merged upstream?
> >>
> >> Thanks,
> >> Alexandre
> >
> >
> > That was a bit too fast, it seems there are issues with very recent versions
> > of Babeltrace. You can follow the discussion at
> > http://lists.linuxfoundation.org/pipermail/diamon-discuss/2015-January/000007.html
> >
>
> It's a regression introduced by a commit that was pushed to master
> yesterday. I'm working on a fix.
> In the meantime, testing against Babeltrace master 3baf0856 should be alright.

even on this HEAD I'm still getting the 3rd issue I described in earlier email:

---
the bt_ctf_trace_create_stream function tries to set ID on
stream_class which gets frozen just few moments ago in
bt_ctf_stream_create call..

this trigers failure and close up of stream fd which is not set yet:

if (close(stream->pos.fd)) {
perror("close");
}

hence the 'close: Bad file descriptor' message
so this one looks like a bug to me, but we might be misusing the API also..
---

I need attached patch in perf code.. any idea?

thanks,
jirka


---
diff --git a/tools/perf/util/data-convert-bt.c b/tools/perf/util/data-convert-bt.c
index bdb493febff6..0d75e1ed348c 100644
--- a/tools/perf/util/data-convert-bt.c
+++ b/tools/perf/util/data-convert-bt.c
@@ -960,6 +960,11 @@ static int ctf_writer__init(struct ctf_writer *cw, const char *path)
goto err_cleanup;
}

+ if (bt_ctf_stream_class_set_id(stream_class, 0)) {
+ pr("Failed to set CTF stream class ID.\n");
+ goto err_cleanup;
+ }
+
cw->stream_class = stream_class;

/* CTF clock stream setup */
--
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/