• Namhyung Kim's avatar
    perf callchain: Create an address space per thread · 66f066d8
    Namhyung Kim authored
    The unw_addr_space_t in libunwind represents an address space to be used
    for stack unwinding.  It doesn't need to be create/destory everytime to
    unwind callchain (as in get_entries) and can have a same lifetime as
    thread (unless exec called).
    
    So move the address space construction/destruction logic to the thread
    lifetime handling functions.  This is a preparation to enable caching in
    the unwind library.
    
    Note that it saves unw_addr_space_t object using thread__set_priv().  It
    seems currently only used by perf trace and perf kvm stat commands which
    don't use callchain.
    Signed-off-by: default avatarNamhyung Kim <namhyung@kernel.org>
    Acked-by: default avatarJean Pihet <jean.pihet@linaro.org>
    Acked-by: default avatarJiri Olsa <jolsa@kernel.org>
    Cc: Arun Sharma <asharma@fb.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    Cc: Ingo Molnar <mingo@kernel.org>
    Cc: Jean Pihet <jean.pihet@linaro.org>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Namhyung Kim <namhyung.kim@lge.com>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Link: http://lkml.kernel.org/r/1412556363-26229-3-git-send-email-namhyung@kernel.org
    [ Fixup unwind-libunwind.c missing CALLCHAIN_DWARF definition, added
      missing __maybe_unused on unused parameters in stubs at util/unwind.h ]
    Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    66f066d8
unwind-libunwind.c 14 KB