• F
    perf_counter: Ignore the nmi call frames in the x86-64 backtraces · 0406ca6d
    Frederic Weisbecker 提交于
    About every callchains recorded with perf record are filled up
    including the internal perfcounter nmi frame:
    
     perf_callchain
     perf_counter_overflow
     intel_pmu_handle_irq
     perf_counter_nmi_handler
     notifier_call_chain
     atomic_notifier_call_chain
     notify_die
     do_nmi
     nmi
    
    We want ignore this frame as it's not interesting for
    instrumentation. To solve this, we simply ignore every frames
    from nmi context.
    
    New example of "perf report -s sym -c" after this patch:
    
    9.59%  [k] search_by_key
                 4.88%
                    search_by_key
                    reiserfs_read_locked_inode
                    reiserfs_iget
                    reiserfs_lookup
                    do_lookup
                    __link_path_walk
                    path_walk
                    do_path_lookup
                    user_path_at
                    vfs_fstatat
                    vfs_lstat
                    sys_newlstat
                    system_call_fastpath
                    __lxstat
                    0x406fb1
    
                 3.19%
                    search_by_key
                    search_by_entry_key
                    reiserfs_find_entry
                    reiserfs_lookup
                    do_lookup
                    __link_path_walk
                    path_walk
                    do_path_lookup
                    user_path_at
                    vfs_fstatat
                    vfs_lstat
                    sys_newlstat
                    system_call_fastpath
                    __lxstat
                    0x406fb1
    [...]
    
    For now this patch only solves the problem in x86-64.
    Signed-off-by: NFrederic Weisbecker <fweisbec@gmail.com>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Mike Galbraith <efault@gmx.de>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Anton Blanchard <anton@samba.org>
    Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
    LKML-Reference: <1246474930-6088-1-git-send-email-fweisbec@gmail.com>
    Signed-off-by: NIngo Molnar <mingo@elte.hu>
    0406ca6d
perf_counter.c 40.6 KB