2017-03-02 22:18:37

by Milian Wolff

[permalink] [raw]
Subject: Re: [PATCH v3 0/5] perf report: Show inline stack

On Dienstag, 21. Februar 2017 01:28:17 CET Jin, Yao wrote:
> Hi,
>
> Any comments for this patch series?

Sorry for the delay. I just tested it again.

Overall, this is a clear improvement, so I'm all for getting this
functionality in.

But from a usability point of view, I still have the some of the issues that I
have raised in the past:

a) --inline should be a boolean setting that enables inline resolution on
demand

b) the other callgraph settings and formatting should be used for inlined
frames, i.e.

- instead of `perf report --inline-name`
it should be: `perf report --inline -g function`
and since `-g function` is the default, it would be the same as:
`perf report --inline`

- instead of `perf report --inline-line -g address`
it should be: `perf report --inline -g address`

Again: As a user of `perf report`, I do not care whether a frame is an inlined
one or a non-inlined one - both should be grouped and displayed the same way.

I.e. this is unusable (imo):

~~~~~~~~~~~~~~~~~~~~~~~~~
perf report --inline-line --stdio

99.81% 35.99% cpp-inlining cpp-inlining [.] main
|
|--63.82%--main
|
---/home/milian/projects/kdab/rnd/hotspot/tests/test-
clients/cpp-inlining/main.cpp:39 (inline)
/usr/include/c++/6.3.1/complex:664 (inline)
| |
| |--63.19%--hypot
| | |
| | --58.04%--__hypot_finite
| |
| --0.62%--cabs
~~~~~~~~~~~~~~~~~~~~~~~~~

Dito for this:

~~~~~~~~~~~~~~~~~~~~~~~~~
perf report --stdio --inline-name -g address --stdio

99.81% 35.99% cpp-inlining cpp-inlining [.] main
|
|--63.82%--main complex:655
|
---main (inline)
std::norm<double> (inline)
~~~~~~~~~~~~~~~~~~~~~~~~~

But, again, even with these gripes, I think it's a very useful feature and I
would like to see it integrated upstream. From my POV, you can add

Tested-by: Milian Wolff <[email protected]>

to all patches in this series.

Many thanks!

--
Milian Wolff | [email protected] | Software Engineer
KDAB (Deutschland) GmbH&Co KG, a KDAB Group company
Tel: +49-30-521325470
KDAB - The Qt Experts


Attachments:
smime.p7s (5.76 kB)

2017-03-03 02:38:45

by Jin Yao

[permalink] [raw]
Subject: Re: [PATCH v3 0/5] perf report: Show inline stack

Hi Wolff,

Thanks so much for your testing. I also wish this feature could be
upstreamed.

I will send a v4 series soon. In v4, It removes the options
"--inline-line" and "--inline-name".

It just uses a new option "--inline" to print the inline function
information. The policy is if the inline function name can be resolved
then print the function name otherwise it prints the source line number.

For example:
perf report --stdio --inline

It prints:

0.69% 0.00% inline ld-2.23.so [.] dl_main
|
---dl_main
|
--0.56%--_dl_relocate_object
|
---_dl_relocate_object (inline)
elf_dynamic_do_Rela (inline)

Thanks

Jin Yao

On 3/3/2017 5:42 AM, Milian Wolff wrote:
> On Dienstag, 21. Februar 2017 01:28:17 CET Jin, Yao wrote:
>> Hi,
>>
>> Any comments for this patch series?
> Sorry for the delay. I just tested it again.
>
> Overall, this is a clear improvement, so I'm all for getting this
> functionality in.
>
> But from a usability point of view, I still have the some of the issues that I
> have raised in the past:
>
> a) --inline should be a boolean setting that enables inline resolution on
> demand
>
> b) the other callgraph settings and formatting should be used for inlined
> frames, i.e.
>
> - instead of `perf report --inline-name`
> it should be: `perf report --inline -g function`
> and since `-g function` is the default, it would be the same as:
> `perf report --inline`
>
> - instead of `perf report --inline-line -g address`
> it should be: `perf report --inline -g address`
>
> Again: As a user of `perf report`, I do not care whether a frame is an inlined
> one or a non-inlined one - both should be grouped and displayed the same way.
>
> I.e. this is unusable (imo):
>
> ~~~~~~~~~~~~~~~~~~~~~~~~~
> perf report --inline-line --stdio
>
> 99.81% 35.99% cpp-inlining cpp-inlining [.] main
> |
> |--63.82%--main
> |
> ---/home/milian/projects/kdab/rnd/hotspot/tests/test-
> clients/cpp-inlining/main.cpp:39 (inline)
> /usr/include/c++/6.3.1/complex:664 (inline)
> | |
> | |--63.19%--hypot
> | | |
> | | --58.04%--__hypot_finite
> | |
> | --0.62%--cabs
> ~~~~~~~~~~~~~~~~~~~~~~~~~
>
> Dito for this:
>
> ~~~~~~~~~~~~~~~~~~~~~~~~~
> perf report --stdio --inline-name -g address --stdio
>
> 99.81% 35.99% cpp-inlining cpp-inlining [.] main
> |
> |--63.82%--main complex:655
> |
> ---main (inline)
> std::norm<double> (inline)
> ~~~~~~~~~~~~~~~~~~~~~~~~~
>
> But, again, even with these gripes, I think it's a very useful feature and I
> would like to see it integrated upstream. From my POV, you can add
>
> Tested-by: Milian Wolff <[email protected]>
>
> to all patches in this series.
>
> Many thanks!
>