Re: [PATCH v3 1/n] perf/core: addressing 4x slowdown during per-process profiling of STREAM benchmark on Intel Xeon Phi

From: Alexey Budankov
Date: Mon Jun 19 2017 - 10:09:13 EST


On 19.06.2017 16:38, Mark Rutland wrote:
On Mon, Jun 19, 2017 at 01:46:39PM +0100, Mark Rutland wrote:
On Fri, Jun 16, 2017 at 05:22:29PM +0300, Alexey Budankov wrote:
On 16.06.2017 17:08, Alexey Budankov wrote:
On 16.06.2017 12:09, Mark Rutland wrote:
There's a --per-thread option to ask perf record to not duplicate the
event per-cpu.

If you use that, what amount of slowdown do you see?

After applying all three patches:

- system-wide collection:

[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 303.795 MB perf.data (~13272985 samples) ]
2162.08user 176.24system 0:12.97elapsed 18021%CPU (0avgtext+0avgdata
1187208maxresident)k
0inputs+622624outputs (0major+1360285minor)pagefaults 0swaps

- per-process collection:

[ perf record: Woken up 5 times to write data ]
[ perf record: Captured and wrote 1.079 MB perf.data (~47134 samples) ]
2102.39user 153.88system 0:12.78elapsed 17645%CPU (0avgtext+0avgdata
1187156maxresident)k
0inputs+2272outputs (0major+1181660minor)pagefaults 0swaps

Elapsed times look similar. Data file sizes differ significantly.

Interesting. I wonder if that's because we're losing samples due to
hammering the rb, or if that's a side-effect of this patch.

Does perf report describe any lost chunks?

For comparison, can you give --per-thread a go prior to these patches
being applied?

FWIW, I had a go with (an old) perf record on an arm64 system using
--per-thread, and I see that no samples are recorded, which seems like a
bug.

With --per-thread, the slwodown was ~20%, whereas with the defaults it
was > 400%.

That looks similar to what I am observing in per-process single thread profiling >4x slowdown.


Thanks,
Mark.