[PATCH 0/4] perf: Fix archive/debugcache PE files

From: Nicholas Fraser
Date: Wed Feb 10 2021 - 14:41:27 EST


Hello perf maintainers,

I have some patches to get "perf archive" working with PE binaries (e.g.
Wine DLLs or Windows executables.) The PE support in perf is fairly new and
"perf archive" hasn't been updated to work with it. In getting this working
I've come across a number of bugs in perf that these patches aim to fix.
The patches are independent and can be committed in any order.

Some of these are because build-ids are now variable width. Build-ids in PE
files are always 16-byte GUIDs; much of the existing code still assumes a
20-byte SHA-1 build-id. I've tried to make the minimal amount of changes to
allow 16-byte build-ids to work with a debugcache from a perf archive.

I'm new to kernel development so I apologize if I'm doing this incorrectly.

Thanks,

Nick

Nicholas Fraser (4):
perf buildid-cache: Don't skip 16-byte build-ids
perf report: Load PE files from debug cache only
perf archive: Fix filtering of empty build-ids
perf report: Fix return value when loading PE DSO

tools/perf/perf-archive.sh | 3 +--
tools/perf/util/build-id.c | 5 +++--
tools/perf/util/build-id.h | 4 +++-
tools/perf/util/symbol.c | 12 ++++--------
4 files changed, 11 insertions(+), 13 deletions(-)

--
2.30.0