[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20171130123554.4330-1-aryabinin@virtuozzo.com>
Date: Thu, 30 Nov 2017 15:35:54 +0300
From: Andrey Ryabinin <aryabinin@...tuozzo.com>
To: Thomas Gleixner <tglx@...utronix.de>,
Ingo Molnar <mingo@...hat.com>,
"H. Peter Anvin" <hpa@...or.com>, x86@...nel.org
Cc: linux-kernel@...r.kernel.org, Josh Poimboeuf <jpoimboe@...hat.com>,
Alexander Potapenko <glider@...gle.com>,
Dmitry Vyukov <dvyukov@...gle.com>, xiaolong.ye@...el.com,
fengguang.wu@...el.com, Andrey Ryabinin <aryabinin@...tuozzo.com>
Subject: [PATCH] x86/unwind_guess: Prevent using UNWINDER_GUESS=y with STACKDEPOT=y
Stackdepot doesn't work well with CONFIG_UNWINDER_GUESS=y.
The 'guess' unwinder generate awfully large and inaccurate stacktraces,
thus stackdepot can't deduplicate stacktraces because they all look like
unique. Eventually stackdepot reaches its capacity limit:
WARNING: CPU: 0 PID: 545 at lib/stackdepot.c:119 depot_save_stack+0x28e/0x550
Call Trace:
? kasan_kmalloc+0x144/0x160
? depot_save_stack+0x1f5/0x550
? do_raw_spin_unlock+0xda/0xf0
? preempt_count_sub+0x13/0xc0
<...90 lines...>
? do_raw_spin_unlock+0xda/0xf0
Add STACKDEPOT=n dependency to UNWINDER_GUESS to avoid the problem.
Signed-off-by: Andrey Ryabinin <aryabinin@...tuozzo.com>
Reported-by: kernel test robot <xiaolong.ye@...el.com>
Reported-by: Fengguang Wu <fengguang.wu@...el.com>
---
arch/x86/Kconfig.debug | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/x86/Kconfig.debug b/arch/x86/Kconfig.debug
index 6293a8768a91..672441c008c7 100644
--- a/arch/x86/Kconfig.debug
+++ b/arch/x86/Kconfig.debug
@@ -400,6 +400,7 @@ config UNWINDER_FRAME_POINTER
config UNWINDER_GUESS
bool "Guess unwinder"
depends on EXPERT
+ depends on !STACKDEPOT
---help---
This option enables the "guess" unwinder for unwinding kernel stack
traces. It scans the stack and reports every kernel text address it
--
2.13.6
Powered by blists - more mailing lists