• Frederic Weisbecker's avatar
    perf tools: Bind callchains to the first sort dimension column · a4fb581b
    Frederic Weisbecker authored
    Currently, the callchains are displayed using a constant left
    margin. So depending on the current sort dimension
    configuration, callchains may appear to be well attached to the
    first sort dimension column field which is mostly the case,
    except when the first dimension of sorting is done by comm,
    because these are right aligned.
    
    This patch binds the callchain to the first letter in the first
    column, whatever type of column it is (dso, comm, symbol).
    Before:
    
         0.80%             perf  [k] __lock_acquire
                 __lock_acquire
                 lock_acquire
                 |
                 |--58.33%-- _spin_lock
                 |          |
                 |          |--28.57%-- inotify_should_send_event
                 |          |          fsnotify
                 |          |          __fsnotify_parent
    
    After:
    
         0.80%             perf  [k] __lock_acquire
                           __lock_acquire
                           lock_acquire
                           |
                           |--58.33%-- _spin_lock
                           |          |
                           |          |--28.57%-- inotify_should_send_event
                           |          |          fsnotify
                           |          |          __fsnotify_parent
    
    Also, for clarity, we don't put anymore the callchain as is but:
    
    - If we have a top level ancestor in the callchain, start it
      with a first ascii hook.
    
      Before:
    
         0.80%             perf  [kernel]                        [k] __lock_acquire
                           __lock_acquire
                             lock_acquire
                           |
                           |--58.33%-- _spin_lock
                           |          |
                           |          |--28.57%-- inotify_should_send_event
                           |          |          fsnotify
                          [..]       [..]
    
       After:
    
         0.80%             perf  [kernel]                         [k] __lock_acquire
                           |
                           --- __lock_acquire
                               lock_acquire
                              |
                              |--58.33%-- _spin_lock
                              |          |
                              |          |--28.57%-- inotify_should_send_event
                              |          |          fsnotify
                             [..]       [..]
    
    - Otherwise, if we have several top level ancestors, then
      display these like we did before:
    
           1.69%           Xorg
                           |
                           |--21.21%-- vread_hpet
                           |          0x7fffd85b46fc
                           |          0x7fffd85b494d
                           |          0x7f4fafb4e54d
                           |
                           |--15.15%-- exaOffscreenAlloc
                           |
                           |--9.09%-- I830WaitLpRing
    Signed-off-by: default avatarFrederic Weisbecker <fweisbec@gmail.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Mike Galbraith <efault@gmx.de>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Anton Blanchard <anton@samba.org>
    LKML-Reference: <1256246604-17156-2-git-send-email-fweisbec@gmail.com>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    a4fb581b
sort.h 2.67 KB