Re: kernel build error due to large stack frame in __bch2_str_hash_check_key

From: Jann Horn
Date: Tue Jan 21 2025 - 14:17:17 EST


On Tue, Jan 21, 2025 at 7:01 PM Kent Overstreet
<kent.overstreet@xxxxxxxxx> wrote:
> On Tue, Jan 21, 2025 at 05:01:26PM +0100, Jann Horn wrote:
> > Hi!
> >
> > I'm trying to build the mainline kernel at commit
> > 95ec54a420b8f445e04a7ca0ea8deb72c51fe1d3 (upstream git master), but
> > the build fails with the following error:
> >
> > ```
> > [...]/fs/bcachefs/str_hash.c: In function ‘__bch2_str_hash_check_key’:
> > [...]/fs/bcachefs/str_hash.c:295:1: error: the frame size of 2400
> > bytes is larger than 2048 bytes [-Werror=frame-larger-than=]
> > 295 | }
> > | ^
> > cc1: all warnings being treated as errors
> > ```
> >
> > I am building with "gcc (Debian 14.2.0-3+build3) 14.2.0", using the
> > attached kernel config. I think this used to work with the mainline
> > kernel before the 6.14 merge window opened.
>
> Well, your kernel config has something that doubles stack frame size,
> it's 1200 bytes here.

It does have things like KASAN and lockdep enabled, it seems plausible
that that could bloat up the stack frames quite a bit.