2010-02-15 11:16:17

by Richard Kennedy

[permalink] [raw]
Subject: [PATCH] fs: inode - remove 8 bytes of padding on 64bits allowing 1 more objects/slab under slub

This removes 8 bytes of padding from struct inode on 64bit builds, and
so allows 1 more object/slab in the inode_cache when using slub.

Signed-off-by: Richard Kennedy <[email protected]>
----
patch against 2.6.33-rc8
compiled & tested on x86_64 AMDX2

I've been running this patch for over a week with no obvious problems
regards
Richard


diff --git a/include/linux/fs.h b/include/linux/fs.h
index b1bcb27..ebb1cd5 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -729,6 +729,7 @@ struct inode {
uid_t i_uid;
gid_t i_gid;
dev_t i_rdev;
+ unsigned int i_blkbits;
u64 i_version;
loff_t i_size;
#ifdef __NEED_I_SIZE_ORDERED
@@ -738,7 +739,6 @@ struct inode {
struct timespec i_mtime;
struct timespec i_ctime;
blkcnt_t i_blocks;
- unsigned int i_blkbits;
unsigned short i_bytes;
umode_t i_mode;
spinlock_t i_lock; /* i_blocks, i_bytes, maybe i_size */


2010-02-15 11:29:42

by Jan Kara

[permalink] [raw]
Subject: Re: [PATCH] fs: inode - remove 8 bytes of padding on 64bits allowing 1 more objects/slab under slub

On Mon 15-02-10 11:16:11, Richard Kennedy wrote:
> This removes 8 bytes of padding from struct inode on 64bit builds, and
> so allows 1 more object/slab in the inode_cache when using slub.
>
> Signed-off-by: Richard Kennedy <[email protected]>
Looks good to me.
Acked-by: Jan Kara <[email protected]>

Honza
> ----
> patch against 2.6.33-rc8
> compiled & tested on x86_64 AMDX2
>
> I've been running this patch for over a week with no obvious problems
> regards
> Richard
>
>
> diff --git a/include/linux/fs.h b/include/linux/fs.h
> index b1bcb27..ebb1cd5 100644
> --- a/include/linux/fs.h
> +++ b/include/linux/fs.h
> @@ -729,6 +729,7 @@ struct inode {
> uid_t i_uid;
> gid_t i_gid;
> dev_t i_rdev;
> + unsigned int i_blkbits;
> u64 i_version;
> loff_t i_size;
> #ifdef __NEED_I_SIZE_ORDERED
> @@ -738,7 +739,6 @@ struct inode {
> struct timespec i_mtime;
> struct timespec i_ctime;
> blkcnt_t i_blocks;
> - unsigned int i_blkbits;
> unsigned short i_bytes;
> umode_t i_mode;
> spinlock_t i_lock; /* i_blocks, i_bytes, maybe i_size */
>
>
--
Jan Kara <[email protected]>
SUSE Labs, CR