Messages in this thread | | | Date | Tue, 14 Sep 2004 10:33:47 -0600 | From | Andreas Dilger <> | Subject | Re: Kernel stack overflow on 2.6.9-rc2 |
| |
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/
[unhandled content-type:application/pgp-signature] | |