Re: No useful callgraphs on Fedora 27



On 02/11/2018 01:01 AM, Clemens Eisserer wrote:
Hi,

I would like to use sysprof to analyze some interaction between a poor
performing graphical program and the Xorg x-server.
In the past I remember sysprof worked very well for this kind of
analysis, giving a detailed overview/callgraph which function consumes
how much time and how it was called.

However on fedora 27, despite having all the debuginfo-packages
installed, I don't get a useful callgraph.
Most functions are directly one hirarchy below the Xorg process.

I also gave oprofile a try, with the same result :/

Any ideas what could be wrong with my system?

Given the massive changes in the Linux kernel the past couple of months
to avoid leaking kernel addresses into user space, there are a lot of
potential things that could go wrong.

For example, even /proc/kallsyms is getting censored now on a lot of
kernels by default, meaning we can't actually determine what symbol a
function pointer in kernel context belongs to. (This is fixed in master,
and will be part of 3.28).

Other systematic issues include Fedora's GCC defaulting to
-fomit-frame-pointer. We use the kernel's perf feature to get callstacks
and perf can't do user-space callstack unwinding. So installing the
debuginfo package isn't exactly helpful (useful to gdb, but to perf not
so much).

For GNOME components, I ensure that I compile things with
-fno-omit-frame-pointer and that usually clears things up. It's not
ideal, but distros seem hell bent on winning their ~1% performance
improvement on database microbenchmarks at the cost of general
debuggability by pretty much anyone else.

HTH

-- Christian




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]