Re: [PATCH] Faster ext2_clear_inode()
On Mon, 9 Jul 2007 22:00:03 +0200 Jörn Engel [EMAIL PROTECTED] wrote: On Mon, 9 July 2007 22:01:48 +0400, Alexey Dobriyan wrote: Yes. Note that ext2_clear_inode() is referenced from ext2_sops, so even empty, it leaves traces in resulting kernel. Is that your opinion or have you actually measured a difference? I strongly suspect that compilers are smart enough to optimize away a call to an empty static function. It saves a big 16 bytes of text here. - To unsubscribe from this list: send the line unsubscribe linux-ext4 in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] Faster ext2_clear_inode()
On Mon, 9 July 2007 08:11:22 +0400, Alexey Dobriyan wrote: If CONFIG_EXT2_FS_POSIX_ACL is not configured, ext2_clear_inode() will be empty function. However, there still will be call and immediate return which can be avoided. [...] +#ifdef CONFIG_EXT2_FS_POSIX_ACL static void ext2_clear_inode(struct inode *inode) { -#ifdef CONFIG_EXT2_FS_POSIX_ACL struct ext2_inode_info *ei = EXT2_I(inode); if (ei-i_acl ei-i_acl != EXT2_ACL_NOT_CACHED) { @@ -197,8 +197,10 @@ static void ext2_clear_inode(struct inode *inode) posix_acl_release(ei-i_default_acl); ei-i_default_acl = EXT2_ACL_NOT_CACHED; } -#endif } +#else +#define ext2_clear_inode NULL +#endif Are you sure your patch makes a difference? Does the resulting binary change at all? Jörn -- Fancy algorithms are slow when n is small, and n is usually small. Fancy algorithms have big constants. Until you know that n is frequently going to be big, don't get fancy. -- Rob Pike - To unsubscribe from this list: send the line unsubscribe linux-ext4 in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] Faster ext2_clear_inode()
On Mon, Jul 09, 2007 at 10:34:32AM +0200, Jörn Engel wrote: On Mon, 9 July 2007 08:11:22 +0400, Alexey Dobriyan wrote: If CONFIG_EXT2_FS_POSIX_ACL is not configured, ext2_clear_inode() will be empty function. However, there still will be call and immediate return which can be avoided. [...] +#ifdef CONFIG_EXT2_FS_POSIX_ACL static void ext2_clear_inode(struct inode *inode) { -#ifdef CONFIG_EXT2_FS_POSIX_ACL struct ext2_inode_info *ei = EXT2_I(inode); if (ei-i_acl ei-i_acl != EXT2_ACL_NOT_CACHED) { @@ -197,8 +197,10 @@ static void ext2_clear_inode(struct inode *inode) posix_acl_release(ei-i_default_acl); ei-i_default_acl = EXT2_ACL_NOT_CACHED; } -#endif } +#else +#define ext2_clear_inode NULL +#endif Are you sure your patch makes a difference? Does the resulting binary change at all? Yes. Note that ext2_clear_inode() is referenced from ext2_sops, so even empty, it leaves traces in resulting kernel. - To unsubscribe from this list: send the line unsubscribe linux-ext4 in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] Faster ext2_clear_inode()
On Mon, 9 July 2007 22:01:48 +0400, Alexey Dobriyan wrote: Yes. Note that ext2_clear_inode() is referenced from ext2_sops, so even empty, it leaves traces in resulting kernel. Is that your opinion or have you actually measured a difference? I strongly suspect that compilers are smart enough to optimize away a call to an empty static function. Jörn -- Fancy algorithms are slow when n is small, and n is usually small. Fancy algorithms have big constants. Until you know that n is frequently going to be big, don't get fancy. -- Rob Pike - To unsubscribe from this list: send the line unsubscribe linux-ext4 in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] Faster ext2_clear_inode()
On Mon, 2007-07-09 at 22:00 +0200, Jörn Engel wrote: On Mon, 9 July 2007 22:01:48 +0400, Alexey Dobriyan wrote: Yes. Note that ext2_clear_inode() is referenced from ext2_sops, so even empty, it leaves traces in resulting kernel. Is that your opinion or have you actually measured a difference? I strongly suspect that compilers are smart enough to optimize away a call to an empty static function. It's not a direct call to a static function. It is called as a super_ops method. I don't think the overhead is very significant, but it doesn't look like it could do any harm. -- David Kleikamp IBM Linux Technology Center - To unsubscribe from this list: send the line unsubscribe linux-ext4 in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] Faster ext2_clear_inode()
On Mon, 9 July 2007 17:02:20 -0500, Dave Kleikamp wrote: It's not a direct call to a static function. It is called as a super_ops method. I don't think the overhead is very significant, but it doesn't look like it could do any harm. Ah, I missed that fact. Yep, looks fine to me. Jörn -- Joern's library part 7: http://www.usenix.org/publications/library/proceedings/neworl/full_papers/mckusick.a - To unsubscribe from this list: send the line unsubscribe linux-ext4 in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] Faster ext2_clear_inode()
If CONFIG_EXT2_FS_POSIX_ACL is not configured, ext2_clear_inode() will be empty function. However, there still will be call and immediate return which can be avoided. Signed-off-by: Alexey Dobriyan [EMAIL PROTECTED] --- fs/ext2/super.c |6 -- 1 file changed, 4 insertions(+), 2 deletions(-) --- a/fs/ext2/super.c +++ b/fs/ext2/super.c @@ -184,9 +184,9 @@ static void destroy_inodecache(void) kmem_cache_destroy(ext2_inode_cachep); } +#ifdef CONFIG_EXT2_FS_POSIX_ACL static void ext2_clear_inode(struct inode *inode) { -#ifdef CONFIG_EXT2_FS_POSIX_ACL struct ext2_inode_info *ei = EXT2_I(inode); if (ei-i_acl ei-i_acl != EXT2_ACL_NOT_CACHED) { @@ -197,8 +197,10 @@ static void ext2_clear_inode(struct inode *inode) posix_acl_release(ei-i_default_acl); ei-i_default_acl = EXT2_ACL_NOT_CACHED; } -#endif } +#else +#define ext2_clear_inode NULL +#endif static int ext2_show_options(struct seq_file *seq, struct vfsmount *vfs) { - To unsubscribe from this list: send the line unsubscribe linux-ext4 in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html