2020-07-06 12:35:38

by Andreas Schwab

[permalink] [raw]
Subject: [PATCH] riscv: use 16KB kernel stack on 64-bit

With the current 8KB stack size there are frequent overflows in a 64-bit
configuration.

Signed-off-by: Andreas Schwab <[email protected]>
---
arch/riscv/include/asm/thread_info.h | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/arch/riscv/include/asm/thread_info.h b/arch/riscv/include/asm/thread_info.h
index 1dd12a0cbb2b..464a2bbc97ea 100644
--- a/arch/riscv/include/asm/thread_info.h
+++ b/arch/riscv/include/asm/thread_info.h
@@ -12,7 +12,11 @@
#include <linux/const.h>

/* thread information allocation */
+#ifdef CONFIG_64BIT
+#define THREAD_SIZE_ORDER (2)
+#else
#define THREAD_SIZE_ORDER (1)
+#endif
#define THREAD_SIZE (PAGE_SIZE << THREAD_SIZE_ORDER)

#ifndef __ASSEMBLY__
--
2.26.2


--
Andreas Schwab, SUSE Labs, [email protected]
GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE 1748 E4D4 88E3 0EEA B9D7
"And now for something completely different."


2020-07-06 13:35:10

by Anup Patel

[permalink] [raw]
Subject: Re: [PATCH] riscv: use 16KB kernel stack on 64-bit

On Mon, Jul 6, 2020 at 6:02 PM Andreas Schwab <[email protected]> wrote:
>
> With the current 8KB stack size there are frequent overflows in a 64-bit
> configuration.
>
> Signed-off-by: Andreas Schwab <[email protected]>
> ---
> arch/riscv/include/asm/thread_info.h | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/arch/riscv/include/asm/thread_info.h b/arch/riscv/include/asm/thread_info.h
> index 1dd12a0cbb2b..464a2bbc97ea 100644
> --- a/arch/riscv/include/asm/thread_info.h
> +++ b/arch/riscv/include/asm/thread_info.h
> @@ -12,7 +12,11 @@
> #include <linux/const.h>
>
> /* thread information allocation */
> +#ifdef CONFIG_64BIT
> +#define THREAD_SIZE_ORDER (2)
> +#else
> #define THREAD_SIZE_ORDER (1)
> +#endif
> #define THREAD_SIZE (PAGE_SIZE << THREAD_SIZE_ORDER)
>
> #ifndef __ASSEMBLY__
> --
> 2.26.2
>
>
> --
> Andreas Schwab, SUSE Labs, [email protected]
> GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE 1748 E4D4 88E3 0EEA B9D7
> "And now for something completely different."

Looks good to me.

Reviewed-by: Anup Patel <[email protected]>

Regards,
Anup

2020-07-07 08:47:30

by Aurelien Jarno

[permalink] [raw]
Subject: Re: [PATCH] riscv: use 16KB kernel stack on 64-bit

On 2020-07-06 14:32, Andreas Schwab wrote:
> With the current 8KB stack size there are frequent overflows in a 64-bit
> configuration.
>
> Signed-off-by: Andreas Schwab <[email protected]>
> ---
> arch/riscv/include/asm/thread_info.h | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/arch/riscv/include/asm/thread_info.h b/arch/riscv/include/asm/thread_info.h
> index 1dd12a0cbb2b..464a2bbc97ea 100644
> --- a/arch/riscv/include/asm/thread_info.h
> +++ b/arch/riscv/include/asm/thread_info.h
> @@ -12,7 +12,11 @@
> #include <linux/const.h>
>
> /* thread information allocation */
> +#ifdef CONFIG_64BIT
> +#define THREAD_SIZE_ORDER (2)
> +#else
> #define THREAD_SIZE_ORDER (1)
> +#endif
> #define THREAD_SIZE (PAGE_SIZE << THREAD_SIZE_ORDER)
>
> #ifndef __ASSEMBLY__
> --
> 2.26.2


Following the discussion on the mailing list, I have been trying this
patch on my system for a few days, and it indeed seems more stable. I
just wonder if you should Cc stable@ so that it is backported in older
kernel versions.

--
Aurelien Jarno GPG: 4096R/1DDD8C9B
[email protected] http://www.aurel32.net

2020-07-08 14:58:21

by Christoph Hellwig

[permalink] [raw]
Subject: Re: [PATCH] riscv: use 16KB kernel stack on 64-bit

On Mon, Jul 06, 2020 at 02:32:26PM +0200, Andreas Schwab wrote:
> With the current 8KB stack size there are frequent overflows in a 64-bit
> configuration.

Adding irqstack support would be the better fix..