Phillip Lougher <[EMAIL PROTECTED]> wrote:
>
> Andrew Morton wrote:
> > Phillip Lougher <[EMAIL PROTECTED]> wrote:
> >>
> >>+static struct inode *squashfs_iget(struct super_block *s, squashfs_inode 
> >>inode)
> >>+{
> >>+   struct inode *i;
> >>+   squashfs_sb_info *msBlk = (squashfs_sb_info *)s->s_fs_info;
> >>+   squashfs_super_block *sBlk = &msBlk->sBlk;
> >>+   unsigned int block = SQUASHFS_INODE_BLK(inode) +
> >>+           sBlk->inode_table_start;
> >>+   unsigned int offset = SQUASHFS_INODE_OFFSET(inode);
> >>+   unsigned int ino = SQUASHFS_MK_VFS_INODE(block
> >>+           - sBlk->inode_table_start, offset);
> >>+   unsigned int next_block, next_offset;
> >>+   squashfs_base_inode_header inodeb;
> > 
> > 
> > How much stack space is being used here?  Perhaps you should run
> > scripts/checkstack.pl across the whole thing.
> > 
> 
> A lot of the functions use a fair amount of stack (I never thought it 
> was excessive)...  This is the result of running checkstack.pl against 
> the code on Intel.
> 
> 0x00003a3c get_dir_index_using_name:                    596
> 0x00000d80 squashfs_iget:                               488
> 0x000044d8 squashfs_lookup:                             380
> 0x00003d00 squashfs_readdir:                            372
> 0x000020fe squashfs_fill_super:                         316
> 0x000031b8 squashfs_readpage:                           308
> 0x00002f5c read_blocklist:                              296
> 0x00003634 squashfs_readpage4K:                         284
> 
> A couple of these functions show a fair amount of stack use.  What is 
> the maximum acceptable usage,

There's no hard-and-fast rule.  The conditions running up to a stack
overrun are necessarily complex, and rare.  But you can see that for a
twenty or thirty function deep call stack, 500 bytes is a big bite out of
4k.

> i.e. do any of the above functions need 
> work to reduce their stack usage?

I'd say so, yes.  If at all possible.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to