linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: Geert Uytterhoeven <geert@linux-m68k.org>
To: "Liam R. Howlett" <Liam.Howlett@oracle.com>
Cc: Arnd Bergmann <arnd@arndb.de>,
	Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>,
	 Russell King <rmk+kernel@armlinux.org.uk>,
	Russell King <linux@armlinux.org.uk>,
	 linux-arm-kernel@lists.infradead.org,
	Marek Vasut <marek.vasut@mailbox.org>
Subject: Re: [issue report] ARM: compile error of frame size
Date: Wed, 15 Oct 2025 12:07:00 +0200	[thread overview]
Message-ID: <CAMuHMdVqOR2kPy7V+N5oCFrKZA0R7JHC_+QsjFc5c43F1KFFiw@mail.gmail.com> (raw)
In-Reply-To: <ax626myd63skmkpb6zleyncggclkivpox2mdvnhcccsplh6gcp@scfguuubd2yp>

Hi Liam,

On Tue, 14 Oct 2025 at 18:53, Liam R. Howlett <Liam.Howlett@oracle.com> wrote:
> * Geert Uytterhoeven <geert@linux-m68k.org> [251014 10:47]:
> > On Tue, 29 Jul 2025 at 09:49, Geert Uytterhoeven <geert@linux-m68k.org> wrote:
> > > On Tue, 29 Jul 2025 at 09:27, Arnd Bergmann <arnd@arndb.de> wrote:
> > > > On Tue, Jul 29, 2025, at 09:15, Geert Uytterhoeven wrote:
> > > > > On Tue, 29 Jul 2025 at 02:12, Kuninori Morimoto
> > > > > <kuninori.morimoto.gx@renesas.com> wrote:
> > > > >> > >         > grep CONFIG_FRAME_WARN .config
> > > > >> > >         CONFIG_FRAME_WARN=2040
> > > > >> > >
> > > > >> > >         > git diff
> > > > >> > >         diff --git a/arch/arm/boot/compressed/Makefile b/arch/arm/boot/compressed/Makefile
> > > > >> > >         index d61369b1eabe..c5173bd82380 100644
> > > > >> > >         --- a/arch/arm/boot/compressed/Makefile
> > > > >> > >         +++ b/arch/arm/boot/compressed/Makefile
> > > > >> > >         @@ -80,7 +80,7 @@ libfdt_objs := fdt_rw.o fdt_ro.o fdt_wip.o fdt.o
> > > > >> > >
> > > > >> > >          ifeq ($(CONFIG_ARM_ATAG_DTB_COMPAT),y)
> > > > >> > >          CFLAGS_REMOVE_atags_to_fdt.o += -Wframe-larger-than=${CONFIG_FRAME_WARN}
> > > > >> > > -        CFLAGS_atags_to_fdt.o += -Wframe-larger-than=1280
> > > > >> > > +        CFLAGS_atags_to_fdt.o += -Wframe-larger-than=2040
> > > > >> > >          OBJS   += $(libfdt_objs) atags_to_fdt.o
> > > > >> > >          endif
> > > > >> > >          ifeq ($(CONFIG_USE_OF),y)
> > > > >> (snip)
> > > > >> > Yes it is.  And it is hard to fix, according to the maple_tree maintainer:
> > > > >>
> > > > >> Hmm...
> > > > >> Actually I have tried to same solution (= remove or fix the big node), but
> > > > >> noticed there are many such code. My suggested was very simple solution
> > > > >> I guess, but I'm not sure detail of ARM limitation, and/or it can solve all
> > > > >> cases, etc...
> > > > >>
> > > > >> But other CPU (like ARM64) doesn't have this issue, so we can follow same
> > > > >> way (= allow large frame) I guess.
> > > > >
> > > > > I do see it in one my arm64 builds, it depends on your kernel config:
> > > > >
> > > > >     lib/maple_tree.c: In function ‘mas_wr_spanning_store’:
> > > > >     lib/maple_tree.c:3812:1: warning: the frame size of 1040 bytes is
> > > > > larger than 1024 bytes [-Wframe-larger-than=] 3812 | }
> > > > >
> > > > > I guess Arnd has seen it in his randconfig builds, too...
> > > > >
> > > > >> Does ARM has some reason which can't use large frame ? If not, do you think
> > > > >> we can allow to use it on ARM ?
> > > > >
> > > > > (stacked) Large frames may cause kernel stack overflow.
> > > >
> > > > The version below works around the warning for arm, arm64 and x86
> > > > on both gcc and clang.
> > >
> > > Thanks, that indeed works for my arm64 config that triggered it before.
> >
> > Unfortunately it no longer helps for my rbxt4927 build...
> >
>
> I've been working on fixing this for a while and am approaching a point
> where I'll share my solution.
>
> The change is non-trivial and is required for expanding node type
> support.  But with the amount of change this introduces, I do not want
> to backport the patch set, if possible.
>
> Considering how close we are here (16 bytes), it may be better to find
> another solution to avoid the particular troubled builds.
>
> It is odd that this only shows up in certain cases though.  Is there a
> particular config option that is needed to cause the size to grow beyond
> 1024?

And of course there is: I still had a few 64-bit .configs that were
derived from older 32-bit .configs, and thus still had
CONFIG_FRAME_WARN=1024 :-(
Changing them to match the recommended default fixed the issue:

    config FRAME_WARN
            int "Warn for stack frames larger than"
            ...
            default 1024 if !64BIT
            default 2048 if 64BIT

Sorry for the noise...

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds


  parent reply	other threads:[~2025-10-15 10:07 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-07-18  2:09 [issue report] ARM: compile error of frame size Kuninori Morimoto
2025-07-28 14:56 ` Geert Uytterhoeven
2025-07-29  0:12   ` Kuninori Morimoto
2025-07-29  7:15     ` Geert Uytterhoeven
2025-07-29  7:27       ` Arnd Bergmann
2025-07-29  7:49         ` Geert Uytterhoeven
2025-10-14 14:47           ` Geert Uytterhoeven
2025-10-14 16:53             ` Liam R. Howlett
2025-10-15  9:26               ` Geert Uytterhoeven
2025-10-15 10:07               ` Geert Uytterhoeven [this message]
2025-10-15 11:02                 ` Arnd Bergmann
2025-10-15 14:58                   ` Geert Uytterhoeven
2025-10-15 15:17                     ` 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=CAMuHMdVqOR2kPy7V+N5oCFrKZA0R7JHC_+QsjFc5c43F1KFFiw@mail.gmail.com \
    --to=geert@linux-m68k.org \
    --cc=Liam.Howlett@oracle.com \
    --cc=arnd@arndb.de \
    --cc=kuninori.morimoto.gx@renesas.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux@armlinux.org.uk \
    --cc=marek.vasut@mailbox.org \
    --cc=rmk+kernel@armlinux.org.uk \
    /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).