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

From: Mark Rutland
Date: Mon Jun 19 2017 - 09:39:31 EST


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%.

Thanks,
Mark.