On Wed, May 31, 2017 at 09:01:03PM +0900, Namhyung Kim wrote:
> When perf processes build-id event, it creates DSOs with the build-id.
> But it didn't set the module short name (like '[module-name]') so when
> processing a kernel mmap event of the module, it cannot found the DSO as
> it only checks the short names.
> 
> That leads for perf to create a same DSO without the build-id info and
> it'll lookup the system path even if the DSO is already in the build-id
> cache.  After kernel was updated, perf cannot find the DSO  and cannot show
> symbols in it anymore.
> 
> You can see this if you have an old data file (w/ old kernel version):
> 
>   $ perf report -i perf.data.old -v |& grep scsi_mod
>   build id event received for 
> /lib/modules/3.19.2-1-ARCH/kernel/drivers/scsi/scsi_mod.ko.gz : 
> cafe1ce6ca13a98a5d9ed3425cde249e57a27fc1
>   Failed to open 
> /lib/modules/3.19.2-1-ARCH/kernel/drivers/scsi/scsi_mod.ko.gz, continuing 
> without symbols
>   ...
> 
> The second message didn't show the build-id.  With this patch:
> 
>   $ perf report -i perf.data.old -v |& grep scsi_mod
>   build id event received for 
> /lib/modules/3.19.2-1-ARCH/kernel/drivers/scsi/scsi_mod.ko.gz: 
> cafe1ce6ca13a98a5d9ed3425cde249e57a27fc1
>   /lib/modules/3.19.2-1-ARCH/kernel/drivers/scsi/scsi_mod.ko.gz with build id 
> cafe1ce6ca13a98a5d9ed3425cde249e57a27fc1 not found, continuing without symbols
>   ...
> 
> Now it shows the build-id but still cannot load the symbol table.  This
> is a different problem which will be fixed in the next patch.
> 
> Signed-off-by: Namhyung Kim <[email protected]>

for all 3:

Acked-by: Jiri Olsa <[email protected]>

thanks,
jirka

Reply via email to