Re: [PATCH] x86/kconfig: hide unwinder menu for KMEMCHECK

From: Josh Poimboeuf
Date: Mon Sep 11 2017 - 19:42:52 EST


On Mon, Sep 11, 2017 at 09:59:36PM +0200, Arnd Bergmann wrote:
> When KMEMCHECK is enabled, we always build with frame pointers,
> which is incompatible with ORC_UNWINDER and GUESS_UNWINDER, as
> Kconfig points out:
>
> warning: (FAULT_INJECTION_STACKTRACE_FILTER && LATENCYTOP && KMEMCHECK && LOCKDEP && FRAME_POINTER_UNWINDER) selects FRAME_POINTER which has unmet direct dependencies (DEBUG_KERNEL && (CRIS || M68K || FRV || UML || SUPERH || BLACKFIN || MN10300 || METAG) || ARCH_WANT_FRAME_POINTERS || !ORC_UNWINDER && !GUESS_UNWINDER)
>
> This works around it by making those two unwinders depend on
> !KMEMCHECK. The other three options that enable frame pointers
> (FAULT_INJECTION_STACKTRACE_FILTER, LATENCYTOP and LOCKDEP) only
> do that on some architectures but not on x86.
>
> It's possible that KMEMCHECK doesn't actually require frame pointers
> but only requires some unwinder. If that is the case, we should drop
> the 'select FRAME_POINTER' there. KMEMCHECK is currenly used only
> on x86.

KMEMCHECK should work with *any* of the unwinders because it uses the
unwinder-agnostic save_stack_trace() interface. So removing the 'select
FRAME_POINTER' sounds like the right fix.

--
Josh