Function stack size usage (was [PATCH][1/2] SquashFS)

From: Phillip Lougher
Date: Sun Mar 20 2005 - 19:51:56 EST


Andrew Morton wrote:
Phillip Lougher <phillip@xxxxxxxxxxxxxxxxxxx> 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, i.e. do any of the above functions need work to reduce their stack usage?

Thanks

Phillip
-
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/