• David Ahern's avatar
    perf kvm: Fix bug resolving guest kernel syms · adb5d2a4
    David Ahern authored
    Guest kernel symbols are not resolved despite passing the information
    needed to resolve them. e.g.,
    
    perf kvm --guest --guestmount=/tmp/guest-mount record -a -- sleep 1
    perf kvm --guest --guestmount=/tmp/guest-mount report --stdio
    
        36.55%  [guest/11399]  [unknown]         [g] 0xffffffff81600bc8
        33.19%  [guest/10474]  [unknown]         [g] 0x00000000c0116e00
        30.26%  [guest/11094]  [unknown]         [g] 0xffffffff8100a288
        43.69%  [guest/10474]  [unknown]         [g] 0x00000000c0103d90
        37.38%  [guest/11399]  [unknown]         [g] 0xffffffff81600bc8
        12.24%  [guest/11094]  [unknown]         [g] 0xffffffff810aa91d
         6.69%  [guest/11094]  [unknown]         [u] 0x00007fa784d721c3
    
    which is just pathetic.
    
    After a maddening 2 days sifting through perf minutia I found it --
    id_hdr_size is not initialized for guest machines. This shows up on the
    report side as random garbage for the cpu and timestamp, e.g.,
    
    29816 7310572949125804849 0x1ac0 [0x50]: PERF_RECORD_MMAP ...
    
    That messes up the sample sorting such that synthesized guest maps are
    processed last.
    
    With this patch you get a much more helpful report:
    
      12.11%  [guest/11399]  [guest.kernel.kallsyms.11399]  [g] irqtime_account_process_tick
      10.58%  [guest/11399]  [guest.kernel.kallsyms.11399]  [g] run_timer_softirq
       6.95%  [guest/11094]  [guest.kernel.kallsyms.11094]  [g] printk_needs_cpu
       6.50%  [guest/11094]  [guest.kernel.kallsyms.11094]  [g] do_timer
       6.45%  [guest/11399]  [guest.kernel.kallsyms.11399]  [g] idle_balance
       4.90%  [guest/11094]  [guest.kernel.kallsyms.11094]  [g] native_read_tsc
        ...
    
    v2:
    - changed rbtree walk to use rb_first per Namhyung's suggestion
    Tested-by: default avatarJiri Olsa <jolsa@redhat.com>
    Signed-off-by: default avatarDavid Ahern <dsahern@gmail.com>
    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    Cc: Ingo Molnar <mingo@kernel.org>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: http://lkml.kernel.org/r/1342826756-64663-5-git-send-email-dsahern@gmail.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    adb5d2a4
map.c 16.1 KB