linux/tools
Namhyung Kim 25d498e636 perf jitdump: Add sym/str-tables to build-ID generation
It was reported that python backtrace with JIT dump was broken after the
change to built-in SHA-1 implementation.  It seems python generates the
same JIT code for each function.  They will become separate DSOs but the
contents are the same.  Only difference is in the symbol name.

But this caused a problem that every JIT'ed DSOs will have the same
build-ID which makes perf confused.  And it resulted in no python
symbols (from JIT) in the output.

Looking back at the original code before the conversion, it used the
load_addr as well as the code section to distinguish each DSO.  But it'd
be better to use contents of symtab and strtab instead as it aligns with
some linker behaviors.

This patch adds a buffer to save all the contents in a single place for
SHA-1 calculation.  Probably we need to add sha1_update() or similar to
update the existing hash value with different contents and use it here.
But it's out of scope for this change and I'd like something that can be
backported to the stable trees easily.

Reviewed-by: Ian Rogers <irogers@google.com>
Cc: Eric Biggers <ebiggers@kernel.org>
Cc: Pablo Galindo <pablogsal@gmail.com>
Cc: Fangrui Song <maskray@sourceware.org>
Link: https://github.com/python/cpython/issues/139544
Fixes: e3f612c1d8 ("perf genelf: Remove libcrypto dependency and use built-in sha1()")
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
2025-12-02 16:06:57 -08:00
..
accounting tools/delaytop: improve error handling for missing PSI support 2025-09-13 17:32:56 -07:00
arch tools: arm64: Add Cortex-A720AE definitions 2025-10-23 14:48:15 -07:00
bootconfig bootconfig: Fix negative seeks on 32-bit with LFS enabled 2025-08-21 08:16:31 +09:00
bpf bpftool: Remove duplicate string.h header 2025-09-27 04:23:15 -07:00
build tool build: Remove __get_cpuid feature test 2025-11-13 23:03:11 -08:00
certs
cgroup memcg_slabinfo: Fix use of PG_slab 2025-07-23 11:55:22 +02:00
counter
crypto
debugging
docs docs: add tools/docs/gen-redirects.py 2025-09-09 13:37:16 -06:00
firewire
firmware
gpio tools: gpio: remove the include directory on make clean 2025-09-04 16:29:28 +02:00
hv tools/hv: fcopy: Fix irregularities with size of ring buffer 2025-07-15 06:25:33 +00:00
iio iio: add power and energy measurement modifiers 2025-09-13 13:47:19 +01:00
include tools headers UAPI: Sync linux/perf_event.h with the kernel sources 2025-11-24 12:20:06 -08:00
kvm/kvm_stat
laptop
leds
lib libperf cpumap: Reduce allocations and sorting in intersect 2025-11-17 18:43:08 -08:00
memory-model
mm tools/mm/slabinfo: fix access to null terminator in string boundary 2025-09-21 14:22:00 -07:00
net NFSD 6.18 Release Notes 2025-10-06 13:22:21 -07:00
objtool - Remove a bunch of asm implementing condition flags testing in KVM's 2025-10-11 11:19:16 -07:00
pcmcia
perf perf jitdump: Add sym/str-tables to build-ID generation 2025-12-02 16:06:57 -08:00
power Kbuild updates for 6.18 2025-10-01 20:58:51 -07:00
rcu
sched tools/sched: Add dl_bw_dump.py for printing bandwidth accounting info 2025-07-14 10:59:33 +02:00
sched_ext tools/sched_ext: scx_qmap: Make debug output quieter by default 2025-09-23 09:03:26 -10:00
scripts tools headers: Sync syscall tables with the kernel source 2025-08-18 13:49:25 -07:00
sound
spi
testing bpf-fixes 2025-10-11 10:31:38 -07:00
thermal
time
tracing rtla: Updates for v6.18 2025-10-05 09:38:26 -07:00
usb tools/usb/usbip: fix spelling mistakes in usbipd.c 2025-09-06 15:22:14 +02:00
verification rv: Add opid per-cpu monitor 2025-07-28 16:47:35 -04:00
virtio kmsan: convert kmsan_handle_dma to use physical addresses 2025-09-12 00:18:20 +02:00
wmi
workqueue
writeback
Makefile