Re: [PATCH] fs: shave 8 bytes off of struct inode

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue 12-06-18 14:11:30, Amir Goldstein wrote:
> Signed-off-by: Amir Goldstein <amir73il@xxxxxxxxx>
> ---
> 
> Linus,
> 
> I tried to find some space to cram i_generation in case
> I get rid of i_fsnotify_mask, but stumbled on a possible
> "lossless compression".
> 
> Any caveats with this change?

One concern I'd have is that i_blkbits is used relatively frequently (e.g.
for block device access) and 1-byte fetch can be slower than 4-byte fetch
on some architectures if I'm not mistaken. I'm not sure how big problem
that would be through.

But if you're looking at reducing struct inode size, it appears we can save
one long by reorganizing struct address_space - there's currently 4-byte
hole after i_mmap_writeable and after wb_err.

								Honza

>  include/linux/fs.h | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/include/linux/fs.h b/include/linux/fs.h
> index 760d8da1b6c7..6d0489613dc1 100644
> --- a/include/linux/fs.h
> +++ b/include/linux/fs.h
> @@ -274,6 +274,7 @@ struct writeback_control;
>  
>  /*
>   * Write life time hint values.
> + * Stored in struct inode as u8.
>   */
>  enum rw_hint {
>  	WRITE_LIFE_NOT_SET	= 0,
> @@ -607,8 +608,8 @@ struct inode {
>  	struct timespec		i_ctime;
>  	spinlock_t		i_lock;	/* i_blocks, i_bytes, maybe i_size */
>  	unsigned short          i_bytes;
> -	unsigned int		i_blkbits;
> -	enum rw_hint		i_write_hint;
> +	u8			i_blkbits;
> +	u8			i_write_hint;
>  	blkcnt_t		i_blocks;
>  
>  #ifdef __NEED_I_SIZE_ORDERED
> -- 
> 2.7.4
> 
-- 
Jan Kara <jack@xxxxxxxx>
SUSE Labs, CR



[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux