Skip to content
Permalink
Chandan-Rajend…

Commits on Apr 17, 2016

  1. Btrfs: subpage-blocksize: Define extent_buffer_head.

    In order to handle multiple extent buffers per page, first we need to create a
    way to handle all the extent buffers that are attached to a page.
    
    This patch creates a new data structure 'struct extent_buffer_head', and moves
    fields that are common to all extent buffers from 'struct extent_buffer' to
    'struct extent_buffer_head'
    
    Also, this patch moves EXTENT_BUFFER_TREE_REF, EXTENT_BUFFER_DUMMY and
    EXTENT_BUFFER_IN_TREE flags from extent_buffer->ebflags  to
    extent_buffer_head->bflags.
    
    Reviewed-by: Liu Bo <bo.li.liu@oracle.com>
    Signed-off-by: Chandan Rajendra <chandan@linux.vnet.ibm.com>
    chandanr authored and fengguang committed Apr 17, 2016

Commits on Apr 16, 2016

  1. Merge tag 'perf-core-for-mingo-20160415' of git://git.kernel.org/pub/…

    …scm/linux/kernel/git/acme/linux into perf/core
    
    Pull perf/core improvements from Arnaldo Carvalho de Melo:
    
    User visible changes:
    
    - Wire the callchain unwinding "max-stack" now to 'perf script --max-stack',
      allowing to limit the depth of callchains, possibly reducing processing
      time (Arnaldo Carvalho de Melo)
    
    - Ditto for 'perf trace --max-stack' (Arnaldo Carvalho de Melo)
    
    - Introduce a --min-stack filter for 'perf trace', to show syscalls that
      had a userspace callchain leading to it at least min-stack deep (Arnaldo Carvalho de Melo)
    
    - Make 'perf trace' work with multiple threads and the --duration filter,
      i.e. do not print the start of an interrupted syscall followed by ...
      to print interrupts from other threads, as we need to wait the sys_exit
      syscall tracepoint to calculate the duration, duh. (Arnaldo Carvalho de Melo)
    
      System wide --duration now works as expected:
    
       [root@jouet ~]# trace --duration 100
         152.393 (145.147 ms): Timer/24358 futex(uaddr: 0x7f5ed98e56cc, op: WAIT_BITSET|PRIV|CLKRT, val: 7055125, utime: 0x7f5ecdbfec30, val3: 4294967295) = -1 ETIMEDOUT Connection timed out
         152.438 (145.040 ms): firefox/24321 poll(ufds: 0x7f5ec388b460, nfds: 6, timeout_msecs: 4294967295) = 1
         358.580 (158.279 ms): Xorg/2025 select(n: 512, inp: 0x83a8e0, tvp: 0x7ffdcbb63610) = 0 Timeout
         358.687 (148.285 ms): gnome-terminal/2711 poll(ufds: 0x55b7e6811ad0, nfds: 15, timeout_msecs: 249) = 1
         370.150 (169.569 ms): gnome-shell/2287 poll(ufds: 0x55e623d65490, nfds: 86, timeout_msecs: 4294967295) = 1
    
    - Now 'perf trace's --max-stack and --min-stack will automatically set
      "--call-graph dwarf", if --call-graph is not present on the command line:
    
       [root@jouet ~]# perf trace -e nanosleep --max-stack 3 usleep 1
         0.299 ( 0.057 ms): usleep/29658 nanosleep(rqtp: 0x7fff80f3b230) = 0
                                           __nanosleep+0x10 (/usr/lib64/libc-2.22.so)
                                           usleep+0x34 (/usr/lib64/libc-2.22.so)
                                           main+0x1eb (/usr/bin/usleep)
       [root@jouet ~]#
    
    - Bump 'perf trace --mmap-pages' for root when using callchains and not
      specifying --mmap-pages explicitely (Arnaldo Carvalho de Melo)
    
    Build fixes:
    
    - The python binding object had missing symbols, to some refactoring
      to fix that (Arnaldo Carvalho de Melo)
    
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Ingo Molnar
    Ingo Molnar committed Apr 16, 2016

Commits on Apr 15, 2016

  1. perf trace: Bump --mmap-pages when --call-graph is used by the root user

    To reduce the chances we'll overflow the mmap buffer, manual fine tuning
    trumps this.
    
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Milian Wolff <milian.wolff@kdab.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Wang Nan <wangnan0@huawei.com>
    Link: http://lkml.kernel.org/n/tip-wxygbxmp1v9mng1ea28wet02@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Arnaldo Carvalho de Melo
    Arnaldo Carvalho de Melo committed Apr 15, 2016
  2. perf evlist: Expose perf_event_mlock_kb_in_pages() helper

    When the user doesn't set --mmap-pages, perf_evlist__mmap() will do it
    by reading the maximum possible for a non-root user from the
    /proc/sys/kernel/perf_event_mlock_kb file.
    
    Expose that function so that 'perf trace' can, for root users, to bump
    mmap-pages to a higher value for root, based on the contents of this
    proc file.
    
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Milian Wolff <milian.wolff@kdab.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Wang Nan <wangnan0@huawei.com>
    Link: http://lkml.kernel.org/n/tip-xay69plylwibpb3l4isrpl1k@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Arnaldo Carvalho de Melo
    Arnaldo Carvalho de Melo committed Apr 15, 2016
  3. perf trace: Make --(min,max}-stack imply "--call-graph dwarf"

    If one uses:
    
      # perf trace --min-stack 16
    
    Then it implicitly means that callgraphs should be enabled, and the best
    option in terms of widespread availability is "dwarf".
    
    Further work needed to choose a better alternative, LBR, in capable
    systems.
    
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Milian Wolff <milian.wolff@kdab.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Wang Nan <wangnan0@huawei.com>
    Link: http://lkml.kernel.org/n/tip-xtjmnpkyk42npekxz3kynzmx@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Arnaldo Carvalho de Melo
    Arnaldo Carvalho de Melo committed Apr 15, 2016
  4. perf record: Export record_opts based callchain parsing helper

    To be able to call it outside option parsing, like when setting a
    default --call-graph parameter in 'perf trace' when just --min-stack is
    used.
    
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Wang Nan <wangnan0@huawei.com>
    Link: http://lkml.kernel.org/n/tip-xay69plylwibpb3l4isrpl1k@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Arnaldo Carvalho de Melo
    Arnaldo Carvalho de Melo committed Apr 15, 2016
  5. perf trace: Introduce --min-stack filter

    Counterpart to --max-stack, to help focusing on deeply nested calls. Can
    be combined with --duration, etc.
    
    E.g.:
    
      System wide syscall tracing looking for call stacks longer than 66:
    
      # trace --mmap-pages 32768 --filter-pid 2711 --call-graph dwarf,16384 --min-stack 66
    
      Or more compactly:
    
      # trace -m 32768 --filt 2711 --call dwarf,16384 --min-st 66
       363.027 ( 0.002 ms): gnome-shell/2287 poll(ufds: 0x7ffc5ea24230, nfds: 1, timeout_msecs: 4294967295         ) = 1
                                           [0xf6fdd] (/usr/lib64/libc-2.22.so)
                                           _xcb_conn_wait+0x92 (/usr/lib64/libxcb.so.1.1.0)
                                           _xcb_out_send+0x4d (/usr/lib64/libxcb.so.1.1.0)
                                           xcb_writev+0x45 (/usr/lib64/libxcb.so.1.1.0)
                                           _XSend+0x19e (/usr/lib64/libX11.so.6.3.0)
                                           _XReply+0x82 (/usr/lib64/libX11.so.6.3.0)
                                           XSync+0x4d (/usr/lib64/libX11.so.6.3.0)
                                           dri3_bind_tex_image+0x42 (/usr/lib64/libGL.so.1.2.0)
                                           _cogl_winsys_texture_pixmap_x11_update+0x117 (/usr/lib64/libcogl.so.20.4.1)
                                           _cogl_texture_pixmap_x11_update+0x67 (/usr/lib64/libcogl.so.20.4.1)
                                           _cogl_texture_pixmap_x11_pre_paint+0x13 (/usr/lib64/libcogl.so.20.4.1)
                                           _cogl_pipeline_layer_pre_paint+0x5e (/usr/lib64/libcogl.so.20.4.1)
                                           _cogl_rectangles_validate_layer_cb+0x1b (/usr/lib64/libcogl.so.20.4.1)
                                           cogl_pipeline_foreach_layer+0xbe (/usr/lib64/libcogl.so.20.4.1)
                                           _cogl_framebuffer_draw_multitextured_rectangles+0x77 (/usr/lib64/libcogl.so.20.4.1)
                                           cogl_framebuffer_draw_multitextured_rectangle+0x51 (/usr/lib64/libcogl.so.20.4.1)
                                           paint_clipped_rectangle+0xb6 (/usr/lib64/libmutter.so.0.0.0)
                                           meta_shaped_texture_paint+0x3e3 (/usr/lib64/libmutter.so.0.0.0)
                                           _g_closure_invoke_va+0xb2 (/usr/lib64/libgobject-2.0.so.0.4600.2)
                                           g_signal_emit_valist+0xc0d (/usr/lib64/libgobject-2.0.so.0.4600.2)
                                           g_signal_emit+0x8f (/usr/lib64/libgobject-2.0.so.0.4600.2)
                                           clutter_actor_continue_paint+0x2bb (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           clutter_actor_paint.part.41+0x47b (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           clutter_actor_real_paint+0x20 (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           _g_closure_invoke_va+0xb2 (/usr/lib64/libgobject-2.0.so.0.4600.2)
                                           g_signal_emit_valist+0xc0d (/usr/lib64/libgobject-2.0.so.0.4600.2)
                                           g_signal_emit+0x8f (/usr/lib64/libgobject-2.0.so.0.4600.2)
                                           clutter_actor_continue_paint+0x2bb (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           clutter_actor_paint.part.41+0x47b (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           clutter_actor_real_paint+0x20 (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           meta_window_actor_paint+0x14b (/usr/lib64/libmutter.so.0.0.0)
                                           _g_closure_invoke_va+0xb2 (/usr/lib64/libgobject-2.0.so.0.4600.2)
                                           g_signal_emit_valist+0xc0d (/usr/lib64/libgobject-2.0.so.0.4600.2)
                                           g_signal_emit+0x8f (/usr/lib64/libgobject-2.0.so.0.4600.2)
                                           clutter_actor_continue_paint+0x2bb (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           clutter_actor_paint.part.41+0x47b (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           clutter_actor_real_paint+0x20 (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           meta_window_group_paint+0x19f (/usr/lib64/libmutter.so.0.0.0)
                                           _g_closure_invoke_va+0xb2 (/usr/lib64/libgobject-2.0.so.0.4600.2)
                                           g_signal_emit_valist+0xc0d (/usr/lib64/libgobject-2.0.so.0.4600.2)
                                           g_signal_emit+0x8f (/usr/lib64/libgobject-2.0.so.0.4600.2)
                                           clutter_actor_continue_paint+0x2bb (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           clutter_actor_paint.part.41+0x47b (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           [0x3d970] (/usr/lib64/gnome-shell/libgnome-shell.so)
                                           _g_closure_invoke_va+0xb2 (/usr/lib64/libgobject-2.0.so.0.4600.2)
                                           g_signal_emit_valist+0xc0d (/usr/lib64/libgobject-2.0.so.0.4600.2)
                                           g_signal_emit+0x8f (/usr/lib64/libgobject-2.0.so.0.4600.2)
                                           clutter_actor_continue_paint+0x2bb (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           clutter_actor_paint.part.41+0x47b (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           clutter_stage_paint+0x3a (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           meta_stage_paint+0x45 (/usr/lib64/libmutter.so.0.0.0)
                                           _g_closure_invoke_va+0x164 (/usr/lib64/libgobject-2.0.so.0.4600.2)
                                           g_signal_emit_valist+0xc0d (/usr/lib64/libgobject-2.0.so.0.4600.2)
                                           g_signal_emit+0x8f (/usr/lib64/libgobject-2.0.so.0.4600.2)
                                           clutter_actor_continue_paint+0x2bb (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           clutter_actor_paint.part.41+0x47b (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           _clutter_stage_do_paint+0x17b (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           clutter_stage_cogl_redraw+0x496 (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           _clutter_stage_do_update+0x117 (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           clutter_clock_dispatch+0x169 (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           g_main_context_dispatch+0x15a (/usr/lib64/libglib-2.0.so.0.4600.2)
                                           g_main_context_iterate.isra.29+0x1e0 (/usr/lib64/libglib-2.0.so.0.4600.2)
                                           g_main_loop_run+0xc2 (/usr/lib64/libglib-2.0.so.0.4600.2)
                                           meta_run+0x2c (/usr/lib64/libmutter.so.0.0.0)
                                           main+0x3f7 (/usr/bin/gnome-shell)
                                           __libc_start_main+0xf0 (/usr/lib64/libc-2.22.so)
                                           [0x2909] (/usr/bin/gnome-shell)
       363.038 ( 0.006 ms): gnome-shell/2287 writev(fd: 5<socket:[32540]>, vec: 0x7ffc5ea243a0, vlen: 3            ) = 4
                                           __GI___writev+0x2d (/usr/lib64/libc-2.22.so)
                                           _xcb_conn_wait+0x359 (/usr/lib64/libxcb.so.1.1.0)
                                           _xcb_out_send+0x4d (/usr/lib64/libxcb.so.1.1.0)
                                           xcb_writev+0x45 (/usr/lib64/libxcb.so.1.1.0)
                                           _XSend+0x19e (/usr/lib64/libX11.so.6.3.0)
                                           _XReply+0x82 (/usr/lib64/libX11.so.6.3.0)
                                           XSync+0x4d (/usr/lib64/libX11.so.6.3.0)
                                           dri3_bind_tex_image+0x42 (/usr/lib64/libGL.so.1.2.0)
                                           _cogl_winsys_texture_pixmap_x11_update+0x117 (/usr/lib64/libcogl.so.20.4.1)
                                           _cogl_texture_pixmap_x11_update+0x67 (/usr/lib64/libcogl.so.20.4.1)
                                           _cogl_texture_pixmap_x11_pre_paint+0x13 (/usr/lib64/libcogl.so.20.4.1)
                                           _cogl_pipeline_layer_pre_paint+0x5e (/usr/lib64/libcogl.so.20.4.1)
                                           _cogl_rectangles_validate_layer_cb+0x1b (/usr/lib64/libcogl.so.20.4.1)
                                           cogl_pipeline_foreach_layer+0xbe (/usr/lib64/libcogl.so.20.4.1)
                                           _cogl_framebuffer_draw_multitextured_rectangles+0x77 (/usr/lib64/libcogl.so.20.4.1)
                                           cogl_framebuffer_draw_multitextured_rectangle+0x51 (/usr/lib64/libcogl.so.20.4.1)
                                           paint_clipped_rectangle+0xb6 (/usr/lib64/libmutter.so.0.0.0)
                                           meta_shaped_texture_paint+0x3e3 (/usr/lib64/libmutter.so.0.0.0)
                                           _g_closure_invoke_va+0xb2 (/usr/lib64/libgobject-2.0.so.0.4600.2)
                                           g_signal_emit_valist+0xc0d (/usr/lib64/libgobject-2.0.so.0.4600.2)
                                           g_signal_emit+0x8f (/usr/lib64/libgobject-2.0.so.0.4600.2)
                                           clutter_actor_continue_paint+0x2bb (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           clutter_actor_paint.part.41+0x47b (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           clutter_actor_real_paint+0x20 (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           _g_closure_invoke_va+0xb2 (/usr/lib64/libgobject-2.0.so.0.4600.2)
                                           g_signal_emit_valist+0xc0d (/usr/lib64/libgobject-2.0.so.0.4600.2)
                                           g_signal_emit+0x8f (/usr/lib64/libgobject-2.0.so.0.4600.2)
                                           clutter_actor_continue_paint+0x2bb (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           clutter_actor_paint.part.41+0x47b (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           clutter_actor_real_paint+0x20 (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           meta_window_actor_paint+0x14b (/usr/lib64/libmutter.so.0.0.0)
                                           _g_closure_invoke_va+0xb2 (/usr/lib64/libgobject-2.0.so.0.4600.2)
                                           g_signal_emit_valist+0xc0d (/usr/lib64/libgobject-2.0.so.0.4600.2)
                                           g_signal_emit+0x8f (/usr/lib64/libgobject-2.0.so.0.4600.2)
                                           clutter_actor_continue_paint+0x2bb (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           clutter_actor_paint.part.41+0x47b (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           clutter_actor_real_paint+0x20 (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           meta_window_group_paint+0x19f (/usr/lib64/libmutter.so.0.0.0)
                                           _g_closure_invoke_va+0xb2 (/usr/lib64/libgobject-2.0.so.0.4600.2)
                                           g_signal_emit_valist+0xc0d (/usr/lib64/libgobject-2.0.so.0.4600.2)
                                           g_signal_emit+0x8f (/usr/lib64/libgobject-2.0.so.0.4600.2)
                                           clutter_actor_continue_paint+0x2bb (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           clutter_actor_paint.part.41+0x47b (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           [0x3d970] (/usr/lib64/gnome-shell/libgnome-shell.so)
                                           _g_closure_invoke_va+0xb2 (/usr/lib64/libgobject-2.0.so.0.4600.2)
                                           g_signal_emit_valist+0xc0d (/usr/lib64/libgobject-2.0.so.0.4600.2)
                                           g_signal_emit+0x8f (/usr/lib64/libgobject-2.0.so.0.4600.2)
                                           clutter_actor_continue_paint+0x2bb (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           clutter_actor_paint.part.41+0x47b (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           clutter_stage_paint+0x3a (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           meta_stage_paint+0x45 (/usr/lib64/libmutter.so.0.0.0)
                                           _g_closure_invoke_va+0x164 (/usr/lib64/libgobject-2.0.so.0.4600.2)
                                           g_signal_emit_valist+0xc0d (/usr/lib64/libgobject-2.0.so.0.4600.2)
                                           g_signal_emit+0x8f (/usr/lib64/libgobject-2.0.so.0.4600.2)
                                           clutter_actor_continue_paint+0x2bb (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           clutter_actor_paint.part.41+0x47b (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           _clutter_stage_do_paint+0x17b (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           clutter_stage_cogl_redraw+0x496 (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           _clutter_stage_do_update+0x117 (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           clutter_clock_dispatch+0x169 (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           g_main_context_dispatch+0x15a (/usr/lib64/libglib-2.0.so.0.4600.2)
                                           g_main_context_iterate.isra.29+0x1e0 (/usr/lib64/libglib-2.0.so.0.4600.2)
                                           g_main_loop_run+0xc2 (/usr/lib64/libglib-2.0.so.0.4600.2)
                                           meta_run+0x2c (/usr/lib64/libmutter.so.0.0.0)
                                           main+0x3f7 (/usr/bin/gnome-shell)
                                           __libc_start_main+0xf0 (/usr/lib64/libc-2.22.so)
                                           [0x2909] (/usr/bin/gnome-shell)
       363.086 ( 0.042 ms): gnome-shell/2287 poll(ufds: 0x7ffc5ea24250, nfds: 1, timeout_msecs: 4294967295         ) = 1
                                           [0xf6fdd] (/usr/lib64/libc-2.22.so)
                                           _xcb_conn_wait+0x92 (/usr/lib64/libxcb.so.1.1.0)
                                           wait_for_reply+0xb7 (/usr/lib64/libxcb.so.1.1.0)
                                           xcb_wait_for_reply+0x61 (/usr/lib64/libxcb.so.1.1.0)
                                           _XReply+0x127 (/usr/lib64/libX11.so.6.3.0)
                                           XSync+0x4d (/usr/lib64/libX11.so.6.3.0)
                                           dri3_bind_tex_image+0x42 (/usr/lib64/libGL.so.1.2.0)
                                           _cogl_winsys_texture_pixmap_x11_update+0x117 (/usr/lib64/libcogl.so.20.4.1)
                                           _cogl_texture_pixmap_x11_update+0x67 (/usr/lib64/libcogl.so.20.4.1)
                                           _cogl_texture_pixmap_x11_pre_paint+0x13 (/usr/lib64/libcogl.so.20.4.1)
                                           _cogl_pipeline_layer_pre_paint+0x5e (/usr/lib64/libcogl.so.20.4.1)
                                           _cogl_rectangles_validate_layer_cb+0x1b (/usr/lib64/libcogl.so.20.4.1)
                                           cogl_pipeline_foreach_layer+0xbe (/usr/lib64/libcogl.so.20.4.1)
                                           _cogl_framebuffer_draw_multitextured_rectangles+0x77 (/usr/lib64/libcogl.so.20.4.1)
                                           cogl_framebuffer_draw_multitextured_rectangle+0x51 (/usr/lib64/libcogl.so.20.4.1)
                                           paint_clipped_rectangle+0xb6 (/usr/lib64/libmutter.so.0.0.0)
                                           meta_shaped_texture_paint+0x3e3 (/usr/lib64/libmutter.so.0.0.0)
                                           _g_closure_invoke_va+0xb2 (/usr/lib64/libgobject-2.0.so.0.4600.2)
                                           g_signal_emit_valist+0xc0d (/usr/lib64/libgobject-2.0.so.0.4600.2)
                                           g_signal_emit+0x8f (/usr/lib64/libgobject-2.0.so.0.4600.2)
                                           clutter_actor_continue_paint+0x2bb (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           clutter_actor_paint.part.41+0x47b (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           clutter_actor_real_paint+0x20 (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           _g_closure_invoke_va+0xb2 (/usr/lib64/libgobject-2.0.so.0.4600.2)
                                           g_signal_emit_valist+0xc0d (/usr/lib64/libgobject-2.0.so.0.4600.2)
                                           g_signal_emit+0x8f (/usr/lib64/libgobject-2.0.so.0.4600.2)
                                           clutter_actor_continue_paint+0x2bb (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           clutter_actor_paint.part.41+0x47b (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           clutter_actor_real_paint+0x20 (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           meta_window_actor_paint+0x14b (/usr/lib64/libmutter.so.0.0.0)
                                           _g_closure_invoke_va+0xb2 (/usr/lib64/libgobject-2.0.so.0.4600.2)
                                           g_signal_emit_valist+0xc0d (/usr/lib64/libgobject-2.0.so.0.4600.2)
                                           g_signal_emit+0x8f (/usr/lib64/libgobject-2.0.so.0.4600.2)
                                           clutter_actor_continue_paint+0x2bb (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           clutter_actor_paint.part.41+0x47b (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           clutter_actor_real_paint+0x20 (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           meta_window_group_paint+0x19f (/usr/lib64/libmutter.so.0.0.0)
                                           _g_closure_invoke_va+0xb2 (/usr/lib64/libgobject-2.0.so.0.4600.2)
                                           g_signal_emit_valist+0xc0d (/usr/lib64/libgobject-2.0.so.0.4600.2)
                                           g_signal_emit+0x8f (/usr/lib64/libgobject-2.0.so.0.4600.2)
                                           clutter_actor_continue_paint+0x2bb (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           clutter_actor_paint.part.41+0x47b (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           [0x3d970] (/usr/lib64/gnome-shell/libgnome-shell.so)
                                           _g_closure_invoke_va+0xb2 (/usr/lib64/libgobject-2.0.so.0.4600.2)
                                           g_signal_emit_valist+0xc0d (/usr/lib64/libgobject-2.0.so.0.4600.2)
                                           g_signal_emit+0x8f (/usr/lib64/libgobject-2.0.so.0.4600.2)
                                           clutter_actor_continue_paint+0x2bb (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           clutter_actor_paint.part.41+0x47b (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           clutter_stage_paint+0x3a (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           meta_stage_paint+0x45 (/usr/lib64/libmutter.so.0.0.0)
                                           _g_closure_invoke_va+0x164 (/usr/lib64/libgobject-2.0.so.0.4600.2)
                                           g_signal_emit_valist+0xc0d (/usr/lib64/libgobject-2.0.so.0.4600.2)
                                           g_signal_emit+0x8f (/usr/lib64/libgobject-2.0.so.0.4600.2)
                                           clutter_actor_continue_paint+0x2bb (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           clutter_actor_paint.part.41+0x47b (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           _clutter_stage_do_paint+0x17b (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           clutter_stage_cogl_redraw+0x496 (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           _clutter_stage_do_update+0x117 (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           clutter_clock_dispatch+0x169 (/usr/lib64/libclutter-1.0.so.0.2400.2)
                                           g_main_context_dispatch+0x15a (/usr/lib64/libglib-2.0.so.0.4600.2)
                                           g_main_context_iterate.isra.29+0x1e0 (/usr/lib64/libglib-2.0.so.0.4600.2)
                                           g_main_loop_run+0xc2 (/usr/lib64/libglib-2.0.so.0.4600.2)
                                           meta_run+0x2c (/usr/lib64/libmutter.so.0.0.0)
                                           main+0x3f7 (/usr/bin/gnome-shell)
                                           __libc_start_main+0xf0 (/usr/lib64/libc-2.22.so)
                                           [0x2909] (/usr/bin/gnome-shell)
    
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Milian Wolff <milian.wolff@kdab.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Wang Nan <wangnan0@huawei.com>
    Link: http://lkml.kernel.org/n/tip-jncuxju9fibq2rl6olhqwjw6@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Arnaldo Carvalho de Melo
    Arnaldo Carvalho de Melo committed Apr 15, 2016
  6. perf trace: Do not print interrupted syscalls when using --duration

    With multiple threads, e.g. a system wide trace session, and one syscall is
    midway in a thread and another thread starts another syscall we must print the
    start of the interrupted syscall followed by ..., but that can't be done that
    way when we use the --duration filter, as we have to wait for the syscall exit
    to calculate the duration and decide if it should be filtered, so we have to
    disable the interrupted logic and only print at syscall exit, duh.
    
    Before:
    
      # trace --duration 100
      <SNIP>
       9.248 (0.023 ms): gnome-shell/2287 poll(ufds: 0x7ffc5ea26580, nfds: 1, timeout_msecs: 4294967295) ...
       9.296 (0.001 ms): gnome-shell/2287 recvmsg(fd: 11<socket:[35818]>, msg: 0x7ffc5ea264a0          ) ...
       9.311 (0.008 ms): Xorg/2025 select(n: 512, inp: 0x83a8e0, tvp: 0x8316a0                         ) ...
       9.859 (0.023 ms): gnome-shell/2287 poll(ufds: 0x7ffc5ea24250, nfds: 1, timeout_msecs: 4294967295) ...
       9.942 (0.051 ms): Xorg/2025 select(n: 512, inp: 0x83a8e0, tvp: 0x8316a0                         ) ...
      10.467 (0.003 ms): gnome-shell/2287 poll(ufds: 0x55e623431220, nfds: 50, timeout_msecs: 4294967295) ...
      11.136 (0.382 ms): Xorg/2025 select(n: 512, inp: 0x83a8e0, tvp: 0x8316a0                         ) ...
      11.223 (0.023 ms): SoftwareVsyncT/24369 futex(uaddr: 0x7f5ec5df8c14, op: WAIT_BITSET|PRIV, val: 1, utime: 0x7f5ec5df8b68, val3: 4294967295) ...
      16.865 (5.501 ms): firefox/24321 poll(ufds: 0x7f5ec388b460, nfds: 6, timeout_msecs: 4294967295   ) ...
      22.571 (0.006 ms): Xorg/2025 select(n: 512, inp: 0x83a8e0, tvp: 0x8316a0                         ) ...
      26.793 (4.063 ms): gnome-shell/2287 poll(ufds: 0x55e623431220, nfds: 50, timeout_msecs: 4294967295) ...
      26.917 (0.080 ms): Xorg/2025 select(n: 512, inp: 0x83a8e0, tvp: 0x8316a0                         ) ...
      27.291 (0.355 ms): qemu-system-x8/10065 ppoll(ufds: 0x55c98b39e400, nfds: 72, tsp: 0x7fffe4e4fe60, sigsetsize: 8) ...
      27.336 (0.012 ms): SoftwareVsyncT/24369 futex(uaddr: 0x7f5ec5df8c14, op: WAIT_BITSET|PRIV, val: 1, utime: 0x7f5ec5df8b68, val3: 4294967295) ...
      33.370 (5.958 ms): firefox/24321 poll(ufds: 0x7f5ec388b460, nfds: 6, timeout_msecs: 4294967295) ...
      33.866 (0.021 ms): Xorg/2025 select(n: 512, inp: 0x83a8e0, tvp: 0x8316a0                      ) ...
      35.762 (1.611 ms): gnome-shell/2287 poll(ufds: 0x55e623431220, nfds: 50, timeout_msecs: 8     ) ...
      38.765 (2.910 ms): Xorg/2025 select(n: 512, inp: 0x83a8e0, tvp: 0x8316a0                      ) ...
    
    After:
    
      # trace --duration 100
    
      238.292 (153.226 ms): hexchat/2786 poll(ufds: 0x559ea372f370, nfds: 6, timeout_msecs: 153) = 0 Timeout
      249.634 (199.433 ms): Xorg/2025 select(n: 512, inp: 0x83a8e0, tvp: 0x7ffdcbb63610        ) = 1
      385.583 (147.257 ms): hexchat/2786 poll(ufds: 0x559ea372f370, nfds: 6, timeout_msecs: 147) = 0 Timeout
      397.166 (110.779 ms): gnome-shell/2287 poll(ufds: 0x55e623431220, nfds: 50, timeout_msecs: 4294967295) = 1
      601.839 (132.066 ms): Xorg/2025 select(n: 512, inp: 0x83a8e0, tvp: 0x8316a0                          ) = 1
      602.445 (132.679 ms): gnome-shell/2287 poll(ufds: 0x55e623431220, nfds: 50, timeout_msecs: 4294967295) = 1
      686.122 (300.418 ms): hexchat/2786 poll(ufds: 0x559ea372f370, nfds: 6, timeout_msecs: 300) = 0 Timeout
      815.033 (184.641 ms): JS Helper/24352 futex(uaddr: 0x7f5ed98e584c, op: WAIT|PRIV, val: 1149859) = 0
      825.868 (195.469 ms): JS Helper/24351 futex(uaddr: 0x7f5ed98e584c, op: WAIT|PRIV, val: 1149860) = 0
      840.738 (210.335 ms): JS Helper/24350 futex(uaddr: 0x7f5ed98e584c, op: WAIT|PRIV, val: 1149861) = 0
      914.898 (158.692 ms): Compositor/24363 futex(uaddr: 0x7f5ec8dfebf4, op: WAIT|PRIV, val: 1) = 0
      915.199 (100.747 ms): Timer/24358 futex(uaddr: 0x7f5ed98e56cc, op: WAIT_BITSET|PRIV|CLKRT, val: 2545397, utime: 0x7f5ecdbfec30, val3: 4294967295) = 0
      986.639 (247.325 ms): hexchat/2786 poll(ufds: 0x559ea372f370, nfds: 6, timeout_msecs: 247) = 0 Timeout
      996.239 (500.591 ms): chrome/16237 poll(ufds: 0x3ecd739bd0, nfds: 5, timeout_msecs: 500) = 0 Timeout
     1042.890 (120.076 ms): Timer/24358 futex(uaddr: 0x7f5ed98e56cc, op: WAIT_BITSET|PRIV|CLKRT, val: 2545403, utime: 0x7f5ecdbfec30, val3: 4294967295) = -1 ETIMEDOUT Connection timed out
    
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Milian Wolff <milian.wolff@kdab.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Wang Nan <wangnan0@huawei.com>
    Link: http://lkml.kernel.org/n/tip-d2nay6kjax5ro991c9kelvi5@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Arnaldo Carvalho de Melo
    Arnaldo Carvalho de Melo committed Apr 15, 2016

Commits on Apr 14, 2016

  1. perf evsel: Move fprintf methods to separate source file

    They still use functions that would drag more stuff to the python
    binding, where these fprintf methods are not used, so separate it.
    
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Wang Nan <wangnan0@huawei.com>
    Link: http://lkml.kernel.org/n/tip-xfp0mgq3hh3px61di6ixi1jk@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Arnaldo Carvalho de Melo
    Arnaldo Carvalho de Melo committed Apr 14, 2016
  2. perf trace: Add --max-stack knob

    Similar to the one in the other tools (report, script, top).
    
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Milian Wolff <milian.wolff@kdab.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Wang Nan <wangnan0@huawei.com>
    Link: http://lkml.kernel.org/n/tip-lh7kk5a5t3erwxw31ah0cgar@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Arnaldo Carvalho de Melo
    Arnaldo Carvalho de Melo committed Apr 14, 2016
  3. perf script: Add --max-stack knob

    Works just like with 'perf report'. In some cases we may want to have
    more than 127 entries, the default maximum.
    
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Wang Nan <wangnan0@huawei.com>
    Link: http://lkml.kernel.org/n/tip-mqkz2p5ok2978gztb0vsnocc@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Arnaldo Carvalho de Melo
    Arnaldo Carvalho de Melo committed Apr 14, 2016
  4. perf tools: Remove addr_location argument to sample__fprintf_callchain

    Not used at all, nuke it.
    
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Wang Nan <wangnan0@huawei.com>
    Link: http://lkml.kernel.org/n/tip-jf2w8ce8nl3wso3vuodg5jci@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Arnaldo Carvalho de Melo
    Arnaldo Carvalho de Melo committed Apr 14, 2016
  5. perf evsel: Require that callchains be resolved before calling fprint…

    …f_{sym,callchain}
    
    This way the print routine merely does printing, not requiring access to
    the resolving machinery, which helps disentangling the object files and
    easing creating subsets with a limited functionality set.
    
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Wang Nan <wangnan0@huawei.com>
    Link: http://lkml.kernel.org/n/tip-2ti2jbra8fypdfawwwm3aee3@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Arnaldo Carvalho de Melo
    Arnaldo Carvalho de Melo committed Apr 14, 2016
  6. perf symbols: Move fprintf routines to separate object file

    To disentangle symbol printing from all the code related to symbol
    tables, resolution of addresses to symbols, etc.
    
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Wang Nan <wangnan0@huawei.com>
    Link: http://lkml.kernel.org/n/tip-eik9g3hbtdc7ddv57f1d4v3p@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Arnaldo Carvalho de Melo
    Arnaldo Carvalho de Melo committed Apr 14, 2016
  7. perf evsel: Remove symbol_conf usage

      # perf test -v python
      16: Try 'import perf' in python, checking link problems      :
      --- start ---
      test child forked, pid 672
      Traceback (most recent call last):
        File "<stdin>", line 1, in <module>
      ImportError: /tmp/build/perf/python/perf.so: undefined symbol:
      symbol_conf
      test child finished with -1
      ---- end ----
      Try 'import perf' in python, checking link problems: FAILED!
      #
    
    To fix it just pass a parameter to perf_evsel__fprintf_sym telling if
    callchains should be printed.
    
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Wang Nan <wangnan0@huawei.com>
    Link: http://lkml.kernel.org/n/tip-comrsr20bsnr8bg0n6rfwv12@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Arnaldo Carvalho de Melo
    Arnaldo Carvalho de Melo committed Apr 14, 2016
  8. perf callchain: Start moving away from global per thread cursors

    The recent perf_evsel__fprintf_callchain() move to evsel.c added several
    new symbol requirements to the python binding, for instance:
    
      # perf test -v python
      16: Try 'import perf' in python, checking link problems      :
      --- start ---
      test child forked, pid 18030
      Traceback (most recent call last):
        File "<stdin>", line 1, in <module>
      ImportError: /tmp/build/perf/python/perf.so: undefined symbol:
      callchain_cursor
      test child finished with -1
      ---- end ----
      Try 'import perf' in python, checking link problems: FAILED!
      #
    
    This would require linking against callchain.c to access to the global
    callchain_cursor variables.
    
    Since lots of functions already receive as a parameter a
    callchain_cursor struct pointer, make that be the case for some more
    function so that we can start phasing out usage of yet another global
    variable.
    
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Wang Nan <wangnan0@huawei.com>
    Link: http://lkml.kernel.org/n/tip-djko3097eyg2rn66v2qcqfvn@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Arnaldo Carvalho de Melo
    Arnaldo Carvalho de Melo committed Apr 14, 2016
  9. perf trace: Move socket_type beautifier to tools/perf/trace/beauty/

    To reduce the size of builtin-trace.c.
    
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Wang Nan <wangnan0@huawei.com>
    Link: http://lkml.kernel.org/n/tip-ao91htwxdqwlwxr47gbluou1@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Arnaldo Carvalho de Melo
    Arnaldo Carvalho de Melo committed Apr 14, 2016
  10. Merge tag 'perf-core-for-mingo-20160414' of git://git.kernel.org/pub/…

    …scm/linux/kernel/git/acme/linux into perf/core
    
    Pull perf/core improvements from Arnaldo Carvalho de Melo:
    
    User visible changes:
    
    - Introduce 'perf record --timestamp-filename', to add a timestamp
      at the end of the 'perf data' file. Will get added value when
      the patch to make 'perf.data' file snapshots gets merged (Wang Nan)
    
    - Fix display of variables present in both --config and --user in
      'perf list' (Taeung Song)
    
    Build fixes:
    
    - Add seccomp and getradom beautifier related defines to fix
      the build in older systems where those definitions are not
      available (Arnaldo Carvalho de Melo)
    
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Ingo Molnar
    Ingo Molnar committed Apr 14, 2016
  11. perf config: Make show_config() use perf_config_set

    Currently show_config() has a problem when user and system config files
    have the same config variables i.e.:
    
      # cat ~/.perfconfig
      [top]
              children = false
    
    When $(sysconfdir) is /usr/local/etc
    
      # cat /usr/local/etc/perfconfig
      [top]
              children = true
    
    Before:
    
      # perf config --user --list
      top.children=false
    
      # perf config --system --list
      top.children=true
    
      # perf config --list
      top.children=true
       top.children=false
    
    Because perf_config() can call show_config() each the config file (user
    and system).  Fix it.
    
    After:
    
      # perf config --user --list
      top.children=false
    
      # perf config --system --list
      top.children=true
    
      # perf config --list
      top.children=false
    
    Signed-off-by: Taeung Song <treeze.taeung@gmail.com>
    Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Masami Hiramatsu <mhiramat@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: http://lkml.kernel.org/r/1460620401-23430-3-git-send-email-treeze.taeung@gmail.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Taeung authored and Arnaldo Carvalho de Melo committed Apr 14, 2016
  12. perf config: Introduce perf_config_set class

    This infrastructure code was designed for upcoming features of
    'perf config'.
    
    That collect config key-value pairs from user and system config files
    (i.e. user wide ~/.perfconfig and system wide $(sysconfdir)/perfconfig)
    to manage perf's configs.
    
    Reviewed-by: Masami Hiramatsu <mhiramat@kernel.org>
    Signed-off-by: Taeung Song <treeze.taeung@gmail.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: http://lkml.kernel.org/r/1460620401-23430-2-git-send-email-treeze.taeung@gmail.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Taeung authored and Arnaldo Carvalho de Melo committed Apr 14, 2016
  13. perf record: Add '--timestamp-filename' option to append timestamp to…

    … output file name
    
    This option appends current timestamp to the output file name.
    
    For example:
    
      # perf record -a --timestamp-filename
      ^C[ perf record: Woken up 1 times to write data ]
      [ perf record: Dump perf.data.2015122622265847 ]
      [ perf record: Captured and wrote 0.742 MB perf.data.<timestamp> (90 samples) ]
      # ls
      perf.data.201512262226584
    
    The timestamp will be useful for identifying each perf.data after the
    'perf record' support for generating multiple output files gets
    introduced.
    
    Signed-off-by: Wang Nan <wangnan0@huawei.com>
    Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Masami Hiramatsu <mhiramat@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Zefan Li <lizefan@huawei.com>
    Cc: pi3orama@163.com
    Link: http://lkml.kernel.org/r/1460535673-159866-5-git-send-email-wangnan0@huawei.com
    Signed-off-by: He Kuang <hekuang@huawei.com>
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    WangNan0 authored and Arnaldo Carvalho de Melo committed Apr 14, 2016
  14. perf record: Turns auxtrace_snapshot_enable into 3 states

    auxtrace_snapshot_enable has only two states (0/1). Turns it into a
    triple states enum so SIGUSR2 handler can safely do other works without
    triggering auxtrace snapshot.
    
    Signed-off-by: Wang Nan <wangnan0@huawei.com>
    Acked-by: Adrian Hunter <adrian.hunter@intel.com>
    Acked-by: Jiri Olsa <jolsa@kernel.org>
    Cc: Masami Hiramatsu <mhiramat@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Zefan Li <lizefan@huawei.com>
    Cc: pi3orama@163.com
    Link: http://lkml.kernel.org/r/1460535673-159866-4-git-send-email-wangnan0@huawei.com
    Signed-off-by: He Kuang <hekuang@huawei.com>
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    WangNan0 authored and Arnaldo Carvalho de Melo committed Apr 14, 2016
  15. perf data: Add perf_data_file__switch() helper

    perf_data_file__switch() closes current output file, renames it, then
    open a new one to continue recording. It will be used by 'perf record'
    to split output into multiple perf.data files.
    
    Signed-off-by: Wang Nan <wangnan0@huawei.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Masami Hiramatsu <mhiramat@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Zefan Li <lizefan@huawei.com>
    Cc: pi3orama@163.com
    Link: http://lkml.kernel.org/r/1460535673-159866-3-git-send-email-wangnan0@huawei.com
    Signed-off-by: He Kuang <hekuang@huawei.com>
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    WangNan0 authored and Arnaldo Carvalho de Melo committed Apr 14, 2016
  16. perf session: Make ordered_events reusable

    ordered_events__free() leaves linked lists and timestamps not cleared,
    so unable to be reused after ordered_events__free(). Which is inconvenient
    after 'perf record' supports generating multiple perf.data output and
    process build-ids for each of them.
    
    Use ordered_events__reinit() for this.
    
    Signed-off-by: Wang Nan <wangnan0@huawei.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Masami Hiramatsu <mhiramat@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Zefan Li <lizefan@huawei.com>
    Cc: pi3orama@163.com
    Link: http://lkml.kernel.org/r/1460535673-159866-2-git-send-email-wangnan0@huawei.com
    Signed-off-by: He Kuang <hekuang@huawei.com>
    [ Split from larger patch ]
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    WangNan0 authored and Arnaldo Carvalho de Melo committed Apr 14, 2016
  17. perf ordered_events: Introduce reinit()

    'perf record' will use this when outputting multiple perf.data files.
    
    Signed-off-by: Wang Nan <wangnan0@huawei.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Masami Hiramatsu <mhiramat@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Zefan Li <lizefan@huawei.com>
    Cc: pi3orama@163.com
    Link: http://lkml.kernel.org/r/1460535673-159866-2-git-send-email-wangnan0@huawei.com
    Signed-off-by: He Kuang <hekuang@huawei.com>
    [ Split from larger patch ]
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    WangNan0 authored and Arnaldo Carvalho de Melo committed Apr 14, 2016
  18. perf trace: Move eventfd beautifiers to trace/beauty/ directory

    To better organize all these beautifiers.
    
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Milian Wolff <milian.wolff@kdab.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Wang Nan <wangnan0@huawei.com>
    Link: http://lkml.kernel.org/n/tip-zrw5zz7cnrs44o5osouyutvt@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Arnaldo Carvalho de Melo
    Arnaldo Carvalho de Melo committed Apr 14, 2016
  19. perf trace: Move mmap beautifiers to trace/beauty/ directory

    To better organize all these beautifiers.
    
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Milian Wolff <milian.wolff@kdab.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Wang Nan <wangnan0@huawei.com>
    Link: http://lkml.kernel.org/n/tip-zbr27mdy9ssdhux3ib2nfa7j@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Arnaldo Carvalho de Melo
    Arnaldo Carvalho de Melo committed Apr 14, 2016
  20. perf trace: Add getrandom beautifier related defines for older systems

    Were the detached tarball (make perf-tar-src-pkg) build was failing because
    those definitions aren't available in the system headers.
    
    On RHEL7, for instance:
    
      builtin-trace.c: In function ‘syscall_arg__scnprintf_getrandom_flags’:
      builtin-trace.c:1113:14: error: ‘GRND_RANDOM’ undeclared (first use in this function)
        P_FLAG(RANDOM);
                    ^
      builtin-trace.c:1114:14: error: ‘GRND_NONBLOCK’ undeclared (first use in this function)
        P_FLAG(NONBLOCK);
                  ^
    
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Milian Wolff <milian.wolff@kdab.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Wang Nan <wangnan0@huawei.com>
    Link: http://lkml.kernel.org/n/tip-r8496g24a3kbqynvk6617b0e@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Arnaldo Carvalho de Melo
    Arnaldo Carvalho de Melo committed Apr 14, 2016
  21. perf trace: Add seccomp beautifier related defines for older systems

    Were the detached tarball (make perf-tar-src-pkg) build was failing because
    those definitions aren't available in the system headers.
    
    On RHEL7, for instance:
    
      builtin-trace.c: In function ‘syscall_arg__scnprintf_seccomp_op’:
      builtin-trace.c:1069:7: error: ‘SECCOMP_SET_MODE_STRICT’ undeclared (first use in this function)
        P_SECCOMP_SET_MODE_OP(STRICT);
             ^
      builtin-trace.c:1069:7: note: each undeclared identifier is reported only once for each function it appears in
      builtin-trace.c:1070:7: error: ‘SECCOMP_SET_MODE_FILTER’ undeclared (first use in this function)
        P_SECCOMP_SET_MODE_OP(FILTER);
             ^
      builtin-trace.c: In function ‘syscall_arg__scnprintf_seccomp_flags’:
      builtin-trace.c:1091:14: error: ‘SECCOMP_FILTER_FLAG_TSYNC’ undeclared (first use in this function)
        P_FLAG(TSYNC);
                    ^
    
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Milian Wolff <milian.wolff@kdab.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Wang Nan <wangnan0@huawei.com>
    Link: http://lkml.kernel.org/n/tip-4f8dzzwd7g6l5dzz693u7kul@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Arnaldo Carvalho de Melo
    Arnaldo Carvalho de Melo committed Apr 14, 2016

Commits on Apr 13, 2016

  1. Merge tag 'perf-core-for-mingo-20160413' of git://git.kernel.org/pub/…

    …scm/linux/kernel/git/acme/linux into perf/core
    
    Pull perf/core improvements and fixes from Arnaldo Carvalho de Melo:
    
    User visible changes:
    
    - Print callchains asked for events requested via 'perf trace --event' too:
      (Arnaldo Carvalho de Melo)
    
      # trace -e nanosleep --call dwarf --event sched:sched_switch/call-graph=fp/ usleep 1
       0.346 (0.005 ms): usleep/24428 nanosleep(rqtp: 0x7fffa15a0540) ...
       0.346 (        ): sched:sched_switch:usleep:24428 [120] S ==> swapper/3:0 [120])
                                        __schedule+0xfe200402 ([kernel.kallsyms])
                                        schedule+0xfe200035 ([kernel.kallsyms])
                                        do_nanosleep+0xfe20006f ([kernel.kallsyms])
                                        hrtimer_nanosleep+0xfe2000dc ([kernel.kallsyms])
                                        sys_nanosleep+0xfe20007a ([kernel.kallsyms])
                                        do_syscall_64+0xfe200062 ([kernel.kallsyms])
                                        return_from_SYSCALL_64+0xfe200000 ([kernel.kallsyms])
                                        __nanosleep+0xffff005b8d602010 (/usr/lib64/libc-2.22.so)
       0.400 (0.059 ms): usleep/24428  ... [continued]: nanosleep()) = 0
                                        __nanosleep+0x10 (/usr/lib64/libc-2.22.so)
                                        usleep+0x34 (/usr/lib64/libc-2.22.so)
                                        main+0x1eb (/usr/bin/usleep)
                                        __libc_start_main+0xf0 (/usr/lib64/libc-2.22.so)
                                        _start+0x29 (/usr/bin/usleep)
    
    - Allow requesting that some CPUs or PIDs be highlighted in 'perf sched map' (Jiri Olsa)
    
    - Compact 'perf sched map' to show just CPUs with activity, improving the output
      in high core count systems (Jiri Olsa)
    
    - Fix segfault with 'perf trace --no-syscalls -e syscall-names' by bailing out
      such request, doesn't make sense to ask for no syscalls and then specify which
      ones should be printed (Arnaldo Carvalho de Melo)
    
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Ingo Molnar
    Ingo Molnar committed Apr 13, 2016
  2. perf trace: Do not accept --no-syscalls together with -e

    Doesn't make sense and was causing a segfault, fix it.
    
      # trace -e clone --no-syscalls --event sched:*exec firefox
      The -e option can't be used with --no-syscalls.
    
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Milian Wolff <milian.wolff@kdab.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Wang Nan <wangnan0@huawei.com>
    Link: http://lkml.kernel.org/n/tip-ccrahezikdk2uebptzr1eyyi@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Arnaldo Carvalho de Melo
    Arnaldo Carvalho de Melo committed Apr 13, 2016
  3. perf evsel: Move some methods from session.[ch] to evsel.[ch]

    Those were converted to be evsel methods long ago, move the
    source to where it belongs.
    
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Milian Wolff <milian.wolff@kdab.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Wang Nan <wangnan0@huawei.com>
    Link: http://lkml.kernel.org/n/tip-vja8rjmkw3gd5ungaeyb5s2j@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Arnaldo Carvalho de Melo
    Arnaldo Carvalho de Melo committed Apr 13, 2016
  4. perf sched map: Display only given cpus

    Introducing --cpus option that will display only given cpus. Could be
    used together with color-cpus option.
    
      $ perf sched map  --cpus 0,1
            *A0   309999.786924 secs A0 => rcu_sched:7
            *.    309999.786930 secs
        *B0  .    309999.786931 secs B0 => rcuos/2:25
         B0 *A0   309999.786947 secs
    
    Signed-off-by: Jiri Olsa <jolsa@kernel.org>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Link: http://lkml.kernel.org/r/1460467771-26532-9-git-send-email-jolsa@kernel.org
    [ Added entry to man page ]
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    olsajiri authored and Arnaldo Carvalho de Melo committed Apr 13, 2016
  5. perf sched map: Color given cpus

    Adding --color-cpus option to display selected cpus with background
    color (red by default).  It helps on navigating through the perf sched
    map output.
    
    Signed-off-by: Jiri Olsa <jolsa@kernel.org>
    Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Link: http://lkml.kernel.org/r/1460467771-26532-8-git-send-email-jolsa@kernel.org
    [ Added entry to man page ]
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    olsajiri authored and Arnaldo Carvalho de Melo committed Apr 13, 2016
  6. perf sched map: Color given pids

    Adding --color-pids option to display selected pids in color (blue by
    default). It helps on navigating through the 'perf sched map' output.
    
    Signed-off-by: Jiri Olsa <jolsa@kernel.org>
    Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Link: http://lkml.kernel.org/r/1460467771-26532-7-git-send-email-jolsa@kernel.org
    [ Added entry to man page ]
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    olsajiri authored and Arnaldo Carvalho de Melo committed Apr 13, 2016
Older
You can’t perform that action at this time.