Revision a09935b878dc8efd4b030ed1ffa0553fc9011fb8 authored by Namhyung Kim on 31 May 2017, 12:01:05 UTC, committed by Arnaldo Carvalho de Melo on 05 June 2017, 17:17:59 UTC
The decompress_kmodule() decompresses kernel modules in order to load
symbols from it.  In the DSO_BINARY_TYPE__BUILD_ID_CACHE case, it needs
the full file path to extract the file extension to determine the
decompression method.  But overwriting 'name' will fail the
decompression since it might point to a non-existing old file.

Instead, use dso->long_name for having the correct extension and use the
real filename to decompress.

In the DSO_BINARY_TYPE__SYSTEM_PATH_KMODULE_COMP case, both names should
be the same.  This allows resolving symbols in the old modules.

Before:

  $ perf report -i perf.data.old | grep scsi_mod
     0.00%  cc1      [scsi_mod]    [k] 0x0000000000004aa6
     0.00%  as       [scsi_mod]    [k] 0x00000000000099e1
     0.00%  cc1      [scsi_mod]    [k] 0x0000000000009830
     0.00%  cc1      [scsi_mod]    [k] 0x0000000000001b8f

After:

     0.00%  cc1      [scsi_mod]    [k] scsi_handle_queue_ramp_up
     0.00%  as       [scsi_mod]    [k] scsi_sg_alloc
     0.00%  cc1      [scsi_mod]    [k] scsi_setup_cmnd
     0.00%  cc1      [scsi_mod]    [k] scsi_get_command

Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Cc: Andi Kleen <andi@firstfloor.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: kernel-team@lge.com
Link: http://lkml.kernel.org/r/20170531120105.21731-3-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
1 parent 6b335e8
History
File Mode Size
i1480
Kconfig -rw-r--r-- 2.4 KB
Makefile -rw-r--r-- 448 bytes
address.c -rw-r--r-- 10.1 KB
allocator.c -rw-r--r-- 9.9 KB
beacon.c -rw-r--r-- 16.3 KB
driver.c -rw-r--r-- 4.0 KB
drp-avail.c -rw-r--r-- 8.6 KB
drp-ie.c -rw-r--r-- 9.6 KB
drp.c -rw-r--r-- 24.5 KB
est.c -rw-r--r-- 13.3 KB
hwa-rc.c -rw-r--r-- 28.2 KB
ie-rcv.c -rw-r--r-- 1.5 KB
ie.c -rw-r--r-- 9.6 KB
lc-dev.c -rw-r--r-- 12.4 KB
lc-rc.c -rw-r--r-- 13.4 KB
neh.c -rw-r--r-- 17.7 KB
pal.c -rw-r--r-- 3.2 KB
radio.c -rw-r--r-- 4.7 KB
reset.c -rw-r--r-- 11.0 KB
rsv.c -rw-r--r-- 27.3 KB
scan.c -rw-r--r-- 4.1 KB
umc-bus.c -rw-r--r-- 4.9 KB
umc-dev.c -rw-r--r-- 2.2 KB
umc-drv.c -rw-r--r-- 845 bytes
uwb-debug.c -rw-r--r-- 9.2 KB
uwb-internal.h -rw-r--r-- 11.1 KB
uwbd.c -rw-r--r-- 10.2 KB
whc-rc.c -rw-r--r-- 13.2 KB
whci.c -rw-r--r-- 6.3 KB

back to top