Re: [PATCH 06/11] perf data: Switch to multiple cpu stream files

From: JÃrÃmie Galarneau
Date: Fri Mar 13 2015 - 12:46:57 EST


On Thu, Mar 12, 2015 at 3:17 PM, Arnaldo Carvalho de Melo
<acme@xxxxxxxxxx> wrote:
> Em Thu, Mar 12, 2015 at 09:40:09PM +0800, Wang Nan escreveu:
>> On 2015/3/12 20:34, Jiri Olsa wrote:
>> > On Thu, Mar 12, 2015 at 07:37:02PM +0800, Wang Nan wrote:
>> >> Hi Jiri,
>> >>
>> >> Have you noticed that this patch causes a endianess problem?
>> >>
>> >> Without this patch:
>> >>
>> >> $ perf data convert --to-ctf ./out.ctf
>> >> [ perf data convert: Converted 'perf.data' into CTF data './out.ctf' ]
>> >> [ perf data convert: Converted and wrote 0.000 MB (11 samples) ]
>> >>
>> >> With this patch:
>> >>
>> >> $ perf data convert --to-ctf ./out.ctf
>> >> perf: event-types.c:1855: bt_ctf_field_type_set_native_byte_order: Assertion `byte_order == 1234 || byte_order == 4321' failed.
>> >> Aborted
>> >>
>> >> I'll look into this problem if you haven't solved it yet. Please let me know if you have already
>> >> have some solutions.
>> >
>> > hum, never seen this.. any other details?
>>
>>
>>
>> My perf is -tip tree (commit 4b52a8d), with patch 'perf data: Add tracepoint events fields CTF conversion support'
>> applied. Babeltrace is fresh new git clone (commit 48d711a).
>>
>> you moved perf.data
>> > through different endian server or something like that?
>> >
>>
>> Never.
>
> Just reproduced this:
>
> [acme@ssdandy linux]$ perf data convert --to-ctf=./ctf-data/
> perf: event-types.c:1855: bt_ctf_field_type_set_native_byte_order:
> Assertion `byte_order == 1234 || byte_order == 4321' failed.
> Aborted (core dumped)
> [acme@ssdandy linux]$
>
>
> perf: event-types.c:1855: bt_ctf_field_type_set_native_byte_order: Assertion `byte_order == 1234 || byte_order == 4321' failed.
>
> Program received signal SIGABRT, Aborted.
> 0x00007ffff5b345d7 in raise () from /lib64/libc.so.6
> Missing separate debuginfos, use: debuginfo-install audit-libs-2.4.1-5.el7.x86_64 bzip2-libs-1.0.6-12.el7.x86_64 elfutils-libelf-0.160-1.el7.x86_64 elfutils-libs-0.160-1.el7.x86_64 glib2-2.40.0-4.el7.x86_64 glibc-2.17-78.el7.x86_64 libgcc-4.8.3-9.el7.x86_64 libuuid-2.23.2-21.el7.x86_64 nss-softokn-freebl-3.16.2.3-9.el7.x86_64 numactl-libs-2.0.9-4.el7.x86_64 perl-libs-5.16.3-285.el7.x86_64 popt-1.13-16.el7.x86_64 python-libs-2.7.5-16.el7.x86_64 slang-2.2.4-11.el7.x86_64 xz-libs-5.1.2-9alpha.el7.x86_64 zlib-1.2.7-13.el7.x86_64
> (gdb) bt
> #0 0x00007ffff5b345d7 in raise () from /lib64/libc.so.6
> #1 0x00007ffff5b35cc8 in abort () from /lib64/libc.so.6
> #2 0x00007ffff5b2d546 in __assert_fail_base () from /lib64/libc.so.6
> #3 0x00007ffff5b2d5f2 in __assert_fail () from /lib64/libc.so.6
> #4 0x00007ffff510034a in bt_ctf_field_type_set_native_byte_order (type=<optimized out>, byte_order=<optimized out>) at event-types.c:1855
> #5 0x00007ffff5101b59 in bt_ctf_stream_class_freeze (stream_class=0x8acc20) at stream-class.c:478
> #6 0x00007ffff50fbdc5 in bt_ctf_event_create (event_class=event_class@entry=0x133d590) at event.c:324
> #7 0x00000000004e158d in process_sample_event (tool=0x7fffffffdc40, _event=<optimized out>, sample=0x7fffffffd840, evsel=0x8b1040, machine=<optimized out>) at util/data-convert-bt.c:518
> #8 0x00000000004b011d in __ordered_events__flush (oe=oe@entry=0x8b0210) at util/ordered-events.c:214
> #9 0x00000000004b043a in ordered_events__flush (oe=oe@entry=0x8b0210, how=how@entry=OE_FLUSH__FINAL) at util/ordered-events.c:279
> #10 0x00000000004aee18 in __perf_session__process_events (file_size=139704, data_size=<optimized out>, data_offset=<optimized out>, session=0x8b0020) at util/session.c:1394
> #11 perf_session__process_events (session=session@entry=0x8b0020) at util/session.c:1412
> #12 0x00000000004e270e in bt_convert__perf2ctf (input=<optimized out>, path=0x7fffffffe59d "./ctf-data/") at util/data-convert-bt.c:992
> #13 0x00000000004479cf in cmd_data_convert (argc=<optimized out>, argv=<optimized out>, prefix=<optimized out>) at builtin-data.c:77
> #14 0x000000000046f365 in run_builtin (p=p@entry=0x8345a0 <commands+576>, argc=argc@entry=3, argv=argv@entry=0x7fffffffe2d0) at perf.c:370
> #15 0x000000000041def0 in handle_internal_command (argv=0x7fffffffe2d0, argc=3) at perf.c:429
> #16 run_argv (argv=0x7fffffffe050, argcp=0x7fffffffe05c) at perf.c:473
> #17 main (argc=3, argv=0x7fffffffe2d0) at perf.c:588
> (gdb)
>

I was able to reproduce this on my end as well. I pushed a fix
addressing this issue in Babeltrace master as of 5ca83563.
This scenario has also been added to Babeltrace's regression test suite.

JÃrÃmie

> Stopping at this to process other patches, will be back to this after reducing the queue,
>
> - Arnaldo



--
JÃrÃmie Galarneau
EfficiOS Inc.
http://www.efficios.com
--
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/