• Arnaldo Carvalho de Melo's avatar
    perf trace: Introduce --min-stack filter · 5cf9c84e
    Arnaldo Carvalho de Melo authored
    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.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    5cf9c84e
perf-trace.txt 5.65 KB