1. 12 7月, 2016 5 次提交
  2. 05 7月, 2016 13 次提交
  3. 01 7月, 2016 10 次提交
  4. 30 6月, 2016 2 次提交
  5. 29 6月, 2016 2 次提交
  6. 28 6月, 2016 8 次提交
    • W
      perf data ctf: Generate fork and exit events to CTF output · ebccba3f
      Wang Nan 提交于
      If 'all' is selected, convert fork and exit events to output CTF stream.
      Signed-off-by: NWang Nan <wangnan0@huawei.com>
      Acked-by: NJiri Olsa <jolsa@kernel.org>
      Cc: Zefan Li <lizefan@huawei.com>
      Cc: pi3orama@163.com
      Link: http://lkml.kernel.org/r/1466767332-114472-8-git-send-email-wangnan0@huawei.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      ebccba3f
    • W
      perf data ctf: Add '--all' option for 'perf data convert' · 9e1a7ea1
      Wang Nan 提交于
      After this patch, 'perf data convert' convert comm events to output CTF
      stream.
      
      Result:
      
        # perf record -a sleep 1
        [ perf record: Woken up 1 times to write data ]
        [ perf record: Captured and wrote 0.378 MB perf.data (73 samples)  ]
      
        # 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.003 MB (73 samples) ]
      
        # babeltrace --clock-seconds ./out.ctf/
        [10627.402515791] (+?.?????????) cycles:ppp: { cpu_id = 0 }, { perf_ip = 0xFFFFFFFF81065AF4, perf_tid = 0, perf_pid = 0, perf_period = 1 }
        [10627.402518972] (+0.000003181) cycles:ppp: { cpu_id = 0 }, { perf_ip = 0xFFFFFFFF81065AF4, perf_tid = 0, perf_pid = 0, perf_period = 1 }
        ...    // only sample event is converted
      
        # perf data convert --all --to-ctf ./out.ctf
        [ perf data convert: Converted 'perf.data' into CTF data './out.ctf' ]
        [ perf data convert: Converted and wrote 0.023 MB (73 samples, 384 non-samples) ]
      
        # babeltrace --clock-seconds ./out.ctf/
        [  0.000000000] (+?.?????????) perf_comm: { cpu_id = 0 }, { pid = 1, tid = 1, comm = "init" }
        [  0.000000000] (+0.000000000) perf_comm: { cpu_id = 0 }, { pid = 2, tid = 2, comm = "kthreadd" }
        [  0.000000000] (+0.000000000) perf_comm: { cpu_id = 0 }, { pid = 3, tid = 3, comm = "ksoftirqd/0" }
        ...    // comm events are converted
        [10627.402515791] (+10627.402515791) cycles:ppp: { cpu_id = 0 }, { perf_ip = 0xFFFFFFFF81065AF4, perf_tid = 0, perf_pid = 0, perf_period = 1 }
        [10627.402518972] (+0.000003181) cycles:ppp: { cpu_id = 0 }, { perf_ip = 0xFFFFFFFF81065AF4, perf_tid = 0, perf_pid = 0, perf_period = 1 }
        ...    // samples are also converted
      Signed-off-by: NWang Nan <wangnan0@huawei.com>
      Acked-by: NJiri Olsa <jolsa@kernel.org>
      Cc: Zefan Li <lizefan@huawei.com>
      Cc: pi3orama@163.com
      Link: http://lkml.kernel.org/r/1466767332-114472-7-git-send-email-wangnan0@huawei.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      9e1a7ea1
    • W
      perf data ctf: Generate comm event to CTF output · f5a08ced
      Wang Nan 提交于
      If 'all' is selected, convert comm event to output CTF stream.
      
      setup_non_sample_events() is called if non_sample is selected. It
      creates a comm_class for comm event.
      
      Use macros to generate and process_comm_event and add_comm_event. These
      macros can be reused for other non-sample events.
      Signed-off-by: NWang Nan <wangnan0@huawei.com>
      Acked-by: NJiri Olsa <jolsa@kernel.org>
      Cc: Zefan Li <lizefan@huawei.com>
      Cc: pi3orama@163.com
      Link: http://lkml.kernel.org/r/1466767332-114472-6-git-send-email-wangnan0@huawei.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      f5a08ced
    • W
      perf data ctf: Prepare collect non-sample events · 8ee4c46c
      Wang Nan 提交于
      Following commits are going to allow 'perf data convert' to collect not
      only samples, but also non-sample events like comm and fork. In this
      patch we count non-sample events using c.non_sample_count, and prepare
      to print number of both type of events like:
      
        # ~/perf data convert --all --to-ctf ./out.ctf
        [ perf data convert: Converted 'perf.data' into CTF data './out.ctf' ]
        [ perf data convert: Converted and wrote 0.846 MB (6508 samples, 686 non-samples) ]
      Signed-off-by: NWang Nan <wangnan0@huawei.com>
      Acked-by: NJiri Olsa <jolsa@kernel.org>
      Cc: Zefan Li <lizefan@huawei.com>
      Cc: pi3orama@163.com
      Link: http://lkml.kernel.org/r/1466767332-114472-5-git-send-email-wangnan0@huawei.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      8ee4c46c
    • W
      perf data ctf: Add 'all' option · f02a6489
      Wang Nan 提交于
      If 'all' option is selected, 'perf data convert' should convert not only
      samples, but non-sample events such as comm and fork. Add this option in
      perf_data_convert_opts. Following commits will add cmdline option to
      select it.
      Signed-off-by: NWang Nan <wangnan0@huawei.com>
      Acked-by: NJiri Olsa <jolsa@kernel.org>
      Cc: Zefan Li <lizefan@huawei.com>
      Cc: pi3orama@163.com
      Link: http://lkml.kernel.org/r/1466767332-114472-4-git-send-email-wangnan0@huawei.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      f02a6489
    • W
      perf data ctf: Pass convert options through opts structure · 3275f68e
      Wang Nan 提交于
      Following commits will add new option to 'perf data convert'. All options
      should be grouped into a structure and passed to low level converter
      (currently there's only one converter).
      
      Introduce data-convert.h and define 'struct perf_data_convert_opts' in
      it. Pass 'force' through opts.
      Signed-off-by: NWang Nan <wangnan0@huawei.com>
      Acked-by: NJiri Olsa <jolsa@kernel.org>
      Cc: Zefan Li <lizefan@huawei.com>
      Cc: pi3orama@163.com
      Link: http://lkml.kernel.org/r/1466767332-114472-3-git-send-email-wangnan0@huawei.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      3275f68e
    • W
      perf data ctf: Add value_set_string() helper · 069ee5c4
      Wang Nan 提交于
      There are many value_set_##x helper for integer, but only for integer.
      This patch adds value_set_string() helper to help following commits
      create string fields.
      Signed-off-by: NWang Nan <wangnan0@huawei.com>
      Acked-by: NJiri Olsa <jolsa@kernel.org>
      Cc: Zefan Li <lizefan@huawei.com>
      Cc: pi3orama@163.com
      Link: http://lkml.kernel.org/r/1466767332-114472-2-git-send-email-wangnan0@huawei.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      069ee5c4
    • J
      perf symbols: Use proper dso name for is_regular_file · ed7b630b
      Jiri Olsa 提交于
      Marc reported use of uninitialized memory:
      
      > In commit "40356721 perf symbols: Do not read symbols/data from
      > device files" a check to uninitialzied memory was added. This leads to
      > the following valgrind output:
      >
      >  ==24515== Syscall param stat(file_name) points to uninitialised byte(s)
      >  ==24515==    at 0x75B26D5: _xstat (in /lib/x86_64-linux-gnu/libc-2.22.so)
      >  ==24515==    by 0x4E548D: stat (stat.h:454)
      >  ==24515==    by 0x4E548D: is_regular_file (util.c:687)
      >  ==24515==    by 0x4A5BEE: dso__load (symbol.c:1435)
      >  ==24515==    by 0x4BB1AE: map__load (map.c:289)
      >  ==24515==    by 0x4BB1AE: map__find_symbol (map.c:333)
      >  ==24515==    by 0x4835B3: thread__find_addr_location (event.c:1300)
      >  ==24515==    by 0x4B5342: add_callchain_ip (machine.c:1652)
      >  ==24515==    by 0x4B5342: thread__resolve_callchain_sample (machine.c:1906)
      >  ==24515==    by 0x4B9E7D: thread__resolve_callchain (machine.c:1958)
      >  ==24515==    by 0x441B3E: process_event (builtin-script.c:795)
      >  ==24515==    by 0x441B3E: process_sample_event (builtin-script.c:920)
      >  ==24515==    by 0x4BEE29: perf_evlist__deliver_sample (session.c:1192)
      >  ==24515==    by 0x4BEE29: machines__deliver_event (session.c:1229)
      >  ==24515==    by 0x4BF770: perf_session__deliver_event (session.c:1286)
      >  ==24515==    by 0x4BF770: ordered_events__deliver_event (session.c:114)
      >  ==24515==    by 0x4C1D17: __ordered_events__flush (ordered-events.c:207)
      >  ==24515==    by 0x4C1D17: ordered_events__flush.part.3 (ordered-events.c:274)
      >  ==24515==    by 0x4BF44C: perf_session__process_user_event (session.c:1325)
      >  ==24515==    by 0x4BF44C: perf_session__process_event (session.c:1451)
      >  ==24515==  Address 0x807c6a0 is 0 bytes inside a block of size 4,096 alloc'd
      >  ==24515==    at 0x4C29C0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
      >  ==24515==    by 0x4A5BCB: dso__load (symbol.c:1421)
      >  ==24515==    by 0x4BB1AE: map__load (map.c:289)
      >  ==24515==    by 0x4BB1AE: map__find_symbol (map.c:333)
      >  ==24515==    by 0x4835B3: thread__find_addr_location (event.c:1300)
      >  ==24515==    by 0x4B5342: add_callchain_ip (machine.c:1652)
      >  ==24515==    by 0x4B5342: thread__resolve_callchain_sample (machine.c:1906)
      >  ==24515==    by 0x4B9E7D: thread__resolve_callchain (machine.c:1958)
      >  ==24515==    by 0x441B3E: process_event (builtin-script.c:795)
      >  ==24515==    by 0x441B3E: process_sample_event (builtin-script.c:920)
      >  ==24515==    by 0x4BEE29: perf_evlist__deliver_sample (session.c:1192)
      >  ==24515==    by 0x4BEE29: machines__deliver_event (session.c:1229)
      >  ==24515==    by 0x4BF770: perf_session__deliver_event (session.c:1286)
      >  ==24515==    by 0x4BF770: ordered_events__deliver_event (session.c:114)
      >  ==24515==    by 0x4C1D17: __ordered_events__flush (ordered-events.c:207)
      >  ==24515==    by 0x4C1D17: ordered_events__flush.part.3 (ordered-events.c:274)
      >  ==24515==    by 0x4BF44C: perf_session__process_user_event (session.c:1325)
      >  ==24515==    by 0x4BF44C: perf_session__process_event (session.c:1451)
      >  ==24515==    by 0x4C0EAC: __perf_session__process_events (session.c:1804)
      >  ==24515==    by 0x4C0EAC: perf_session__process_events (session.c:1858)
      
      The reason was a typo that passed global 'name' variable as the
      is_regular_file argument instead dso->long_name.
      Reported-by: NMarc Kleine-Budde <mkl@pengutronix.de>
      Signed-off-by: NJiri Olsa <jolsa@kernel.org>
      Acked-by: NMarc Kleine-Budde <mkl@pengutronix.de>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Wang Nan <wangnan0@huawei.com>
      Fixes: 40356721 ("perf symbols: Do not read symbols/data from device files")
      Link: http://lkml.kernel.org/r/1466772025-17471-2-git-send-email-jolsa@kernel.orgSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      ed7b630b