Re: [PATCH v3 01/15] stacktrace/x86: add function for detecting reliable stack traces

From: Miroslav Benes
Date: Mon Dec 19 2016 - 11:25:28 EST


On Thu, 8 Dec 2016, Josh Poimboeuf wrote:

> diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
> index 215612c..b4a6663 100644
> --- a/arch/x86/Kconfig
> +++ b/arch/x86/Kconfig
> @@ -155,6 +155,7 @@ config X86
> select HAVE_PERF_REGS
> select HAVE_PERF_USER_STACK_DUMP
> select HAVE_REGS_AND_STACK_ACCESS_API
> + select HAVE_RELIABLE_STACKTRACE if X86_64 && FRAME_POINTER && STACK_VALIDATION

Tests to measure possible performance penalty of frame pointers were done
by Mel Gorman. The outcome was quite clear. There IS a measurable
impact. The percentage depends on the workflow but I think it is safe to
say that FP usually takes 5-10 percents.

If my understanding is correct there is no single culprit. Register
pressure is definitely not a problem. We ran simple benchmarks while
taking a register away from GCC (RBP or a common one). The impact is a
combination of more cacheline pressure, more memory accesses and the fact
that the kernel contains a lot of small functions.

Thus, I think that DWARF should be the way to go here.

Other than that the patch looks good to me.

Miroslav