On Donnerstag, 16. Dezember 2021 14:37:03 CET Timothy Miller wrote: > Hi, > > I am doing some software profiling on an aarch64 system, and I’m using the > Linux perf tool. The problem I’m running into is that “__GI___memcpy_simd” > keeps showing up as the function with the most CPU usage. > > Unfortunately, no matter what I do, this function keeps showing up as > orphaned. That is, I cannot get a stack trace for it so I can find out who > is calling it. > > I have tried using dwarf mode, but it always gets overloaded. > > I have tried using lbr mode, but I get the following error: > Error: > PMU Hardware doesn't support sampling/overflow-interrupts. > > I’ve rebuilt my application and all relevant libraries with > -no-omit-frame-pointer so that I could use the default frame pointer mode. > Unfortunately, I still can’t get a call graph for this function. > > I emailed the glibc mailing list about this, trying to find out how to work > around this problem, perhaps adding frame pointer to the assembly > implementation of memcpy. They suggested I try attaching a debugger, and > I’ve found that I can get stack traces just fine. They suggest that I seem > to be running into some kind of bug in perf. > > Any help/advice would be appreciated. Hey Timothy, I haven't been following upstream perf development closely in the past, but a few years ago perf was missing support for arm <-> x86 cross machine unwinding. Maybe that's the issue you are running into? Can you try the AppImage of hotspot available at [1] and see if that one works when you pass the right sysroot and potentially other flags, see [2] and `hotspot --help` for more information. Hotspot uses a different unwinding mechanism and at least in the past used to be better at unwinding `perf.data` files recorded on arm on a x86 machine. One way or another though, it would be great if you can share an MWE - i.e. the `perf.data` file together with the `perf archive` for a minimal example that just calls `memcpy` in a loop. Cheers [1]: https://github.com/KDAB/hotspot/releases/tag/continuous [2]: https://github.com/KDAB/hotspot#embedded-systems -- Milian Wolff | milian.wolff@kdab.com | Senior Software Engineer KDAB (Deutschland) GmbH, a KDAB Group company Tel: +49-30-521325470 KDAB - The Qt, C++ and OpenGL Experts