linux-arch.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: David Laight <David.Laight@ACULAB.COM>
To: 'Sebastian Andrzej Siewior' <bigeasy@linutronix.de>,
	"guoren@kernel.org" <guoren@kernel.org>
Cc: "arnd@arndb.de" <arnd@arndb.de>,
	"palmer@rivosinc.com" <palmer@rivosinc.com>,
	"tglx@linutronix.de" <tglx@linutronix.de>,
	"peterz@infradead.org" <peterz@infradead.org>,
	"luto@kernel.org" <luto@kernel.org>,
	"conor.dooley@microchip.com" <conor.dooley@microchip.com>,
	"heiko@sntech.de" <heiko@sntech.de>,
	"jszhang@kernel.org" <jszhang@kernel.org>,
	"lazyparser@gmail.com" <lazyparser@gmail.com>,
	"falcon@tinylab.org" <falcon@tinylab.org>,
	"chenhuacai@kernel.org" <chenhuacai@kernel.org>,
	"apatel@ventanamicro.com" <apatel@ventanamicro.com>,
	"atishp@atishpatra.org" <atishp@atishpatra.org>,
	"palmer@dabbelt.com" <palmer@dabbelt.com>,
	"paul.walmsley@sifive.com" <paul.walmsley@sifive.com>,
	"linux-arch@vger.kernel.org" <linux-arch@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-riscv@lists.infradead.org"
	<linux-riscv@lists.infradead.org>,
	Guo Ren <guoren@linux.alibaba.com>
Subject: RE: [PATCH V4 6/8] riscv: Support HAVE_IRQ_EXIT_ON_IRQ_STACK
Date: Fri, 9 Sep 2022 07:30:30 +0000	[thread overview]
Message-ID: <0ff315c978d24215b00c42df51f51b2d@AcuMS.aculab.com> (raw)
In-Reply-To: <YxoTdxk772vneG53@linutronix.de>

From: Sebastian Andrzej Siewior
> Sent: 08 September 2022 17:08
> 
> On 2022-09-07 22:25:04 [-0400], guoren@kernel.org wrote:
> > diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig
> > index a07bb3b73b5b..a8a12b4ba1a9 100644
> > --- a/arch/riscv/Kconfig
> > +++ b/arch/riscv/Kconfig
> > @@ -433,6 +433,14 @@ config FPU
> >
> >  	  If you don't know what to do here, say Y.
> >
> > +config IRQ_STACKS
> > +	bool "Independent irq stacks"
> > +	default y
> > +	select HAVE_IRQ_EXIT_ON_IRQ_STACK
> > +	help
> > +	  Add independent irq stacks for percpu to prevent kernel stack overflows.
> > +	  We may save some memory footprint by disabling IRQ_STACKS.
> 
> Do you really think that it is needed to save memory here? Avoiding
> stack overflows in deep call chains is probably more important than
> saving ~8KiB per CPU.

Particularly if a 64bit build is using small stacks.

Without static analysis of actual call chain depth it is
really difficult to trim the stack size.

I'd bet (a few beers) that the deepest stack use in inside
the console print code form a printk() (eg warn_on_once)
in an obscure error path somewhere.
This won't be hit during any normal testing.

I think that the analysis objtool does is getting close
to be able to generate the raw data that can be used for
static stack depth analysis.
You need the 'CFI' constants for indirect calls and
some assumptions about depth of recursive calls.
But apart from that the code to process the raw output
isn't that complex.

A nice task for someone with some spare time.

	David

-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)

  reply	other threads:[~2022-09-09  7:30 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-08  2:24 [PATCH V4 0/9] riscv: Add GENERIC_ENTRY, irq stack support guoren
2022-09-08  2:24 ` [PATCH V4 1/8] riscv: elf_kexec: Fixup compile warning guoren
2022-09-08  2:25 ` [PATCH V4 2/8] riscv: compat_syscall_table: " guoren
2022-09-08  2:25 ` [PATCH V4 3/8] riscv: ptrace: Remove duplicate operation guoren
2022-09-08  2:25 ` [PATCH V4 4/8] riscv: traps: Add noinstr to prevent instrumentation inserted guoren
2022-09-08  7:33   ` Peter Zijlstra
2022-09-10  9:17     ` Guo Ren
2022-09-10 12:46       ` Guo Ren
2022-09-11 15:09       ` Peter Zijlstra
2022-09-11 16:20         ` Guo Ren
2022-09-08  2:25 ` [PATCH V4 5/8] riscv: convert to generic entry guoren
2022-09-15 13:50   ` Yipeng Zou
2022-09-08  2:25 ` [PATCH V4 6/8] riscv: Support HAVE_IRQ_EXIT_ON_IRQ_STACK guoren
2022-09-08 16:08   ` Sebastian Andrzej Siewior
2022-09-09  7:30     ` David Laight [this message]
2022-09-11  1:13       ` Guo Ren
2022-09-08  2:25 ` [PATCH V4 7/8] riscv: Support HAVE_SOFTIRQ_ON_OWN_STACK guoren
2022-09-08 16:01   ` Sebastian Andrzej Siewior
2022-09-18 15:42     ` Guo Ren
2022-09-08  2:25 ` [PATCH V4 8/8] riscv: Add config of thread stack size guoren
2022-09-08  7:35   ` Arnd Bergmann
2022-09-10 12:52     ` Guo Ren
2022-09-10 16:06       ` Arnd Bergmann
2022-09-10 23:35         ` Guo Ren
2022-09-11 18:39           ` Arnd Bergmann
2022-09-12  4:14             ` Guo Ren
2022-09-12  8:23               ` Arnd Bergmann
2022-09-19  8:38                 ` Guo Ren
2022-09-19  8:35         ` Guo Ren
2022-09-20  0:46           ` Guo Ren
2022-09-20  7:15             ` Arnd Bergmann
2022-09-21  6:11               ` Guo Ren
2022-09-20  7:17             ` Arnd Bergmann
2022-09-21  6:13               ` Guo Ren
2022-09-21  8:23                 ` Guo Ren
2022-09-21 10:31                   ` Guo Ren
2022-09-21 10:46                     ` Guo Ren
2022-09-22  5:55                       ` Arnd Bergmann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=0ff315c978d24215b00c42df51f51b2d@AcuMS.aculab.com \
    --to=david.laight@aculab.com \
    --cc=apatel@ventanamicro.com \
    --cc=arnd@arndb.de \
    --cc=atishp@atishpatra.org \
    --cc=bigeasy@linutronix.de \
    --cc=chenhuacai@kernel.org \
    --cc=conor.dooley@microchip.com \
    --cc=falcon@tinylab.org \
    --cc=guoren@kernel.org \
    --cc=guoren@linux.alibaba.com \
    --cc=heiko@sntech.de \
    --cc=jszhang@kernel.org \
    --cc=lazyparser@gmail.com \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-riscv@lists.infradead.org \
    --cc=luto@kernel.org \
    --cc=palmer@dabbelt.com \
    --cc=palmer@rivosinc.com \
    --cc=paul.walmsley@sifive.com \
    --cc=peterz@infradead.org \
    --cc=tglx@linutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).