Skip to content
  • Arnaldo Carvalho de Melo's avatar
    perf top: Support userspace symbols too · 5b2bb75a
    Arnaldo Carvalho de Melo authored
    
    
    Example:
    
    Compiling the kernel with 'make -k 22 allyesconfig'
    
    [root@emilia linux-2.6-tip]# perf top -r 90
    ------------------------------------------------------------------------------
       PerfTop:    3669 irqs/sec  kernel:59.9% [1000Hz cycles],  (all, 8 CPUs)
    ------------------------------------------------------------------------------
    
                 samples  pcnt function                                 DSO
                 _______ _____ ________________________________ ________________
    
                 3062.00  6.5% clear_page_c                     [kernel]
                 2233.00  4.8% _int_malloc                      /lib64/libc-2.5.so
                 2100.00  4.5% yylex                            /home/acme/git/build/allyesconfig/scripts/genksyms/genksyms
                 2029.00  4.3% memset                           /lib64/libc-2.5.so
                 1224.00  2.6% page_fault                       [kernel]
                 1075.00  2.3% __GI_strlen                      /lib64/libc-2.5.so
                  863.00  1.8% sub_preempt_count                [kernel]
                  822.00  1.8% __GI_memcpy                      /lib64/libc-2.5.so
                  810.00  1.7% __GI_vfprintf                    /lib64/libc-2.5.so
                  786.00  1.7% _int_free                        /lib64/libc-2.5.so
                  775.00  1.7% __GI_strcmp                      /lib64/libc-2.5.so
                  748.00  1.6% _spin_lock                       [kernel]
                  699.00  1.5% main                             /home/acme/git/build/allyesconfig/scripts/basic/fixdep
                  659.00  1.4% add_preempt_count                [kernel]
                  649.00  1.4% yyparse                          /home/acme/git/build/allyesconfig/scripts/genksyms/genksyms
                  645.00  1.4% preempt_trace                    [kernel]
                  635.00  1.4% __GI___libc_free                 /lib64/libc-2.5.so
                  597.00  1.3% trace_preempt_on                 [kernel]
                  551.00  1.2% __GI___libc_malloc               /lib64/libc-2.5.so
                  516.00  1.1% _spin_lock_irqsave               [kernel]
                  481.00  1.0% copy_user_generic_string         [kernel]
                  479.00  1.0% unmap_vmas                       [kernel]
                  429.00  0.9% _IO_file_xsputn_internal         /lib64/libc-2.5.so
                  425.00  0.9% __GI_strncpy                     /lib64/libc-2.5.so
                  416.00  0.9% get_page_from_freelist           [kernel]
                  414.00  0.9% malloc_consolidate               /lib64/libc-2.5.so
                  406.00  0.9% get_parent_ip                    [kernel]
                  362.00  0.8% __rmqueue                        [kernel]
                  347.00  0.7% in_lock_functions                [kernel]
                  316.00  0.7% __d_lookup                       [kernel]
    
    [root@emilia linux-2.6-tip]#
    
    More polishing is needed to print just DSO basename when not
    --verbose, etc.
    
    Supporting a 'comm' column requires some more reworking of 'perf
    top' internals as we will need to use something like the hist
    entries 'perf report' uses and will be done in another patch.
    
    Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Mike Galbraith <efault@gmx.de>
    LKML-Reference: <1256592199-9608-3-git-send-email-acme@redhat.com>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    5b2bb75a