Re: 2.6.24.2: 4KSTACKS + pcdrw + dm + mount -> stack overflow: ide-cd related? dm-related?
From: Jan Kara
Date: Mon Feb 25 2008 - 17:48:21 EST
> On Sun, 24 Feb 2008 17:02:26 +0000 Nix <nix@xxxxxxxxxxxxx> wrote:
>
> > On 24 Feb 2008, Peter Osterlund told this:
> >
> > > Nix <nix@xxxxxxxxxxxxx> writes:
> > >> But while I'd normally blame pktcdvd there's only one pktcdvd function
> > >> in these tracebacks (pkt_open) and it's not got a significant stack
> > >> footprint.
> > >
> > > Did you verify that with "make checkstack" or just by looking at the
> > > source code? On my system, pkt_open() consumes 584 bytes because the
> > > compiler decides to inline lots of functions that would not normally
> > > be part of long call chains. The following patch fixes that problem on
> > > my system.
> >
> > I just looked at the source; I forgot `make checkstack' existed.
> >
> > On this system:
> >
> > 0xc0263e0f pkt_open [vmlinux]: 556
> >
> > which is nearly as bad.
> >
> > (As an aside, I'm surprised I didn't oops when packet-writing as well:
> >
> > 0xc021270d udf_process_sequence [vmlinux]: 692
> > 0xc020f43d udf_add_entry [vmlinux]: 628
> >
> > owch. I guess that's called via a shorter call chain...)
>
> udf_process_sequence() seems to be another victim of gcc inlining.
Hmm, I'll have a look what we can do.
> udf_add_entry() defines a couple of 256-byte local arrays.
Yes, exactly two of them. One is non-trivial to get rid of - it's
used for encoding of filename before we write it, but one is used during
scanning of the directory whether the entry doesn't already exists (oh,
my!) and we can just rip that off..
Honza
--
Jan Kara <jack@xxxxxxx>
SuSE CR Labs
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/