• Wang Nan's avatar
    perf buildid: Fix cpumode of buildid event · fd786fac
    Wang Nan authored
    There is a nasty confusion that, for kernel module, dso->kernel is not
    necessary to be DSO_TYPE_KERNEL or DSO_TYPE_GUEST_KERNEL.  These two
    enums are for vmlinux. See thread [1]. We tried to fix this part but it
    is costy.
    
    Code machine__write_buildid_table() is another unfortunate function fall
    into this trap that, when issuing buildid event for a kernel module,
    cpumode it gives to the event is PERF_RECORD_MISC_USER, not
    PERF_RECORD_MISC_KERNEL.
    
    However, even with this bug, most of the time it doesn't causes real
    problem. I find this issue when trying to use a perf before commit
    3d39ac53 ("perf machine: No need to have two DSOs lists") to parse a
    perf.data generated by newest perf.
    
    [1] https://lkml.org/lkml/2015/9/21/908Signed-off-by: default avatarWang Nan <wangnan0@huawei.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Li Zefan <lizefan@huawei.com>
    Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: pi3orama@163.com
    Link: http://lkml.kernel.org/r/1454089251-203152-1-git-send-email-wangnan0@huawei.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    fd786fac
build-id.c 11.8 KB