All of lore.kernel.org
 help / color / mirror / Atom feed
* Cost in sym vs. sym@plt
@ 2016-08-30 11:54 Milian Wolff
  2016-08-31 16:51 ` Andi Kleen
  0 siblings, 1 reply; 3+ messages in thread
From: Milian Wolff @ 2016-08-30 11:54 UTC (permalink / raw)
  To: linux-perf-users

[-- Attachment #1: Type: text/plain, Size: 1557 bytes --]

Hey all,

in one of my perf data, I see the following cost report:

    Samples: 7K of event 'cycles:ppp', Event count (approx.): 6223833141
    Children      Self  Command          Shared Object           Symbol
    -   93.63%    28.89%  lab_mandelbrot   lab_mandelbrot        [.] main
        - 73.81% main
            - 33.57% hypot
              27.76% __hypot_finite
              15.97% __muldc3
               2.90% __muldc3@plt
               2.40% QImage::height() const@plt
             + 2.14% QColor::rgb
               1.94% QImage::width() const@plt
               1.92% cabs@plt

How do I interpret the @plt cost? Does this really mean that 2.90% + 2.40% + 
1.94% + 1.92% + ... of time is spent in the @plt stubs, which then call the 
"real" non-@plt functions?

I'm asking, because I did not expect the cost of the @plt to be that large. Is 
this maybe due to skid? I doubt that, since the above is from a cycles:ppp 
profile on an Intel Haswell i5, which is supposedly accurate.

If on the other hand the @plt actually calls the real function opaquely 
internally, then I would propose to merge the two symbols in perf reports (at 
least optionally). From my POV of an application developer, the distinction 
between sym and sym@plt is just adding noise, the real cost for me is the sum 
of the two entries.

Any explanation on how to interpret the data would be appreciated.

Thanks
-- 
Milian Wolff | milian.wolff@kdab.com | Software Engineer
KDAB (Deutschland) GmbH&Co KG, a KDAB Group company
Tel: +49-30-521325470
KDAB - The Qt Experts

[-- Attachment #2: smime.p7s --]
[-- Type: application/pkcs7-signature, Size: 5903 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Cost in sym vs. sym@plt
  2016-08-30 11:54 Cost in sym vs. sym@plt Milian Wolff
@ 2016-08-31 16:51 ` Andi Kleen
  2016-09-03 20:40   ` Milian Wolff
  0 siblings, 1 reply; 3+ messages in thread
From: Andi Kleen @ 2016-08-31 16:51 UTC (permalink / raw)
  Cc: linux-perf-users

Milian Wolff <milian.wolff@kdab.com> writes:
>
> I'm asking, because I did not expect the cost of the @plt to be that large. Is 
> this maybe due to skid? I doubt that, since the above is from a cycles:ppp 
> profile on an Intel Haswell i5, which is supposedly accurate.

There's no such thing as fully accurate profiling.

-Andi

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Cost in sym vs. sym@plt
  2016-08-31 16:51 ` Andi Kleen
@ 2016-09-03 20:40   ` Milian Wolff
  0 siblings, 0 replies; 3+ messages in thread
From: Milian Wolff @ 2016-09-03 20:40 UTC (permalink / raw)
  To: Andi Kleen; +Cc: linux-perf-users

[-- Attachment #1: Type: text/plain, Size: 628 bytes --]

On Mittwoch, 31. August 2016 09:51:06 CEST Andi Kleen wrote:
> Milian Wolff <milian.wolff@kdab.com> writes:
> > I'm asking, because I did not expect the cost of the @plt to be that
> > large. Is this maybe due to skid? I doubt that, since the above is from a
> > cycles:ppp profile on an Intel Haswell i5, which is supposedly accurate.
> 
> There's no such thing as fully accurate profiling.

OK, so does this mean it's skid that I'm seeing here?

Thanks

-- 
Milian Wolff | milian.wolff@kdab.com | Software Engineer
KDAB (Deutschland) GmbH&Co KG, a KDAB Group company
Tel: +49-30-521325470
KDAB - The Qt Experts

[-- Attachment #2: smime.p7s --]
[-- Type: application/pkcs7-signature, Size: 5903 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2016-09-03 20:40 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-08-30 11:54 Cost in sym vs. sym@plt Milian Wolff
2016-08-31 16:51 ` Andi Kleen
2016-09-03 20:40   ` Milian Wolff

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.