Subject: Re: linux-next: kgdb tree build warning

From: Stephen Rothwell <[email-masked]>
Date: Thu, 24 Dec 2009 16:21:17 +1100

Hi Jason,

On Wed, 23 Dec 2009 22:09:00 -0600 Jason Wessel <[email-masked]> wrote:
>
> Stephen Rothwell wrote:
> >
> > Today's linux-next build (x86_64_allmodconfig) produced this warning:
> >
> > kernel/debug/kdb/kdb_bp.c: In function 'kdb_bp':
> > kernel/debug/kdb/kdb_bp.c:434: warning: the frame size of 32880 bytes is larger than 2048 bytes
> >
> > Introduced by commit 16f40ed7bd0ad29dcde7a05b8a07f5ba10937277 ("kdb: core
> > for kgdb back end").
> 
> Using gcc 4.3, I did not see this error.   What compiler or compiler
> options did you use to get this?

I use a gcc 4.4.0 cross sompiler for all the x86_64 builds.  No special
compiler options apart from those provided by the allmodconfig build.
It looks like the compiler gets -Wframe-larger-than=${CONFIG_FRAME_WARN}
passed to it (and presumably CONFIG_FRAME_WARN is 2048).

> I assume it means the stack space was exhausted and a casual glance at
> the code did not yield anything obvious like a large array on the stack
> or anything.  It is conceivable that there is an inline function that is
> the source of the problem, but I would like to be able to duplicate it.

OK.

That function has a kdb_bp_t on its stack which contains an NR_CPUS array
of pointers.  NR_CPUS is 4096 (in this build) and pointers are 8 bytes,
so there is 32K right there :-(

-- 
Cheers,
Stephen Rothwell                    [email-masked]
http://www.canb.auug.org.au/~sfr/