Re: [PATCH 1/2] x86/dumpstack: Optimize save_stack_trace

From: Frederic Weisbecker
Date: Fri Jul 08 2016 - 11:08:03 EST


On Fri, Jul 08, 2016 at 12:08:19PM +0200, Ingo Molnar wrote:
>
> * Byungchul Park <byungchul.park@xxxxxxx> wrote:
>
> > On Mon, Jul 04, 2016 at 07:27:54PM +0900, Byungchul Park wrote:
> > > I suggested this patch on https://lkml.org/lkml/2016/6/20/22. However,
> > > I want to proceed saperately since it's somewhat independent from each
> > > other. Frankly speaking, I want this patchset to be accepted at first so
> > > that the crossfeature can use this optimized save_stack_trace_norm()
> > > which makes crossrelease work smoothly.
> >
> > What do you think about this way to improve it?
>
> I like both of your improvements, the speed up is impressive:
>
> [ 2.327597] save_stack_trace() takes 87114 ns
> ...
> [ 2.781694] save_stack_trace() takes 20044 ns
> ...
> [ 3.103264] save_stack_trace takes 3821 (sched_lock)
>
> Could you please also measure call graph recording (perf record -g), how much
> faster does it get with your patches and what are our remaining performance hot
> spots?

I don't think it will impact much perf because print_context_stack_bp() checks
ops->address() which return perf_callchain_store() which tells if we crossed
the buffer limit.

But it's worth checking anyway.

Thanks.