Thread (5 messages) 5 messages, 3 authors, 2022-05-31

Re: [PATCH] powerpc/Kconfig: Force THREAD_SHIFT to at least 14 with KASAN

From: Christophe Leroy <hidden>
Date: 2022-05-31 06:27:05
Also in: lkml


Le 31/05/2022 à 08:16, Michael Ellerman a écrit :
Christophe Leroy [off-list ref] writes:
quoted
Allthough 14 is the default THREAD_SHIFT when KASAN is selected,
taking an old config may keep 13 when CONFIG_EXPERT is selected.

Force it to 14 as a minimum when KASAN is selected.

Also default to 15 when KASAN on PPC64.

Reported-by: Erhard Furtner <redacted>
Signed-off-by: Christophe Leroy <redacted>
---
  arch/powerpc/Kconfig | 4 +++-
  1 file changed, 3 insertions(+), 1 deletion(-)
I was thinking of doing it in C, similar to the way arm64 handles it.

Something like below. It means we always double the stack size when
KASAN is enabled. I think it's preferable, as it will always work
regardless of whether the user has an old .config (or is bisectting)?
Yes good idea.

I leave it to you then.

You can therefore also remove the default value for KASAN in Kconfig.

Christophe
quoted hunk ↗ jump to hunk
cheers
diff --git a/arch/powerpc/include/asm/thread_info.h b/arch/powerpc/include/asm/thread_info.h
index 125328d1b980..c9735f93f8e6 100644
--- a/arch/powerpc/include/asm/thread_info.h
+++ b/arch/powerpc/include/asm/thread_info.h
@@ -14,12 +14,17 @@
  
  #ifdef __KERNEL__
  
-#if defined(CONFIG_VMAP_STACK) && CONFIG_THREAD_SHIFT < PAGE_SHIFT
-#define THREAD_SHIFT		PAGE_SHIFT
+#ifdef CONFIG_KASAN
+#define THREAD_SHIFT		(CONFIG_THREAD_SHIFT + 1)
  #else
  #define THREAD_SHIFT		CONFIG_THREAD_SHIFT
  #endif
  
+#if defined(CONFIG_VMAP_STACK) && THREAD_SHIFT < PAGE_SHIFT
+#undef THREAD_SHIFT
+#define THREAD_SHIFT		PAGE_SHIFT
+#endif
+
  #define THREAD_SIZE		(1 << THREAD_SHIFT)
  
  /*
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help