• Arnaldo Carvalho de Melo's avatar
    perf symbols: Add BSS symbols when reading from /proc/kallsyms · 2be732c0
    Arnaldo Carvalho de Melo authored
    We were not considering 'B' and 'b' (BSS, uninitialized data objects,
    that gets set to zero at program start), do it so that we can resolve
    more symbols in tools doing resolution of data operands, like 'perf c2c'.
    
    When using vmlinux, i.e. an ELF symbol table, those were already
    considered, as the decision was about STT_FUNC or STT_OBJECT, and the
    later covers BSS symbols.
    
      # grep -i ' b ' /proc/kallsyms  | head -20 | tail -5
      ffffffffa789d030 b execute_command
      ffffffffa789d038 b initcall_command_line
      ffffffffa789d040 b static_command_line
      ffffffffa789d048 B ROOT_DEV
      ffffffffa789d050 b once.73786
      #
      # readelf -s /lib/modules/`uname -r`/build/vmlinux | grep ROOT_DEV
      79219: ffffffff8289d048     4 OBJECT  GLOBAL DEFAULT   58 ROOT_DEV
      #
    
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Wang Nan <wangnan0@huawei.com>
    Link: https://lkml.kernel.org/n/tip-z960xobig39ca1pmp5brl2fr@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    2be732c0
symbol.c 50.1 KB