netdev
[Top] [All Lists]

Re: Kernel stack overflow on 2.6.9-rc2

To: Denis Vlasenko <vda@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
Subject: Re: Kernel stack overflow on 2.6.9-rc2
From: Andreas Dilger <adilger@xxxxxxxxxxxxx>
Date: Tue, 14 Sep 2004 10:33:47 -0600
Cc: linux-kernel@xxxxxxxxxxxxxxx, Trond Myklebust <trond.myklebust@xxxxxxxxxx>, netdev@xxxxxxxxxxx
In-reply-to: <200409141723.35009.vda@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
Mail-followup-to: Denis Vlasenko <vda@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>, linux-kernel@xxxxxxxxxxxxxxx, Trond Myklebust <trond.myklebust@xxxxxxxxxx>, netdev@xxxxxxxxxxx
References: <200409141723.35009.vda@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
Sender: netdev-bounce@xxxxxxxxxxx
User-agent: Mutt/1.4.1i
On Sep 14, 2004  17:23 +0300, Denis Vlasenko wrote:
> I am putting to use an ancient box. Pentium 66.
> It gives me stack overflow errors on 2.6.9-rc2:
> 
> To save you filtering out functions with less than 100
> bytes of stack:
> 
> udp_sendmsg+0x35e/0x61a [220]
> sock_sendmsg+0x88/0xa3 [208]
> __nfs_revalidate_inode+0xc7/0x308 [152]
> nfs_lookup_revalidate+0x257/0x4ed [312]
> load_elf_binary+0xc4f/0xcc8 [268]
> load_script+0x1ea/0x220 [136]
> do_execve+0x153/0x1b9 [336]

do_execve() can be trivially fixed to allocate bprm (328 bytes) instead 
putting it on the stack.  Given the frequency of exec and the odd size
it should probably be in its own slab (and fix the goofy prototype
indenting while you're there too ;-).

load_elf_binary() on the other hand is a big mess, 132 bytes of int/long
variables.

nfs_lookup_revalidate() has 2 large structs on the stack, fhandle and fattr.

Cheers, Andreas
--
Andreas Dilger
http://sourceforge.net/projects/ext2resize/
http://members.shaw.ca/adilger/             http://members.shaw.ca/golinux/

Attachment: pgpFE27ImiSyf.pgp
Description: PGP signature

<Prev in Thread] Current Thread [Next in Thread>