fs: re-order super_block to remove 16 bytes of padding on 64bit builds
PATCH 1/1 fs: re-order super_block to remove 16 bytes of padding on 64bit builds
re-order structure super_block to remove 16 bytes of alignment padding on 64bit builds.
This shrinks the size of super_block from 712 to 696 bytes so requiring one fewer 64 byte cache lines.
Signed-off-by Richard Kennedy <[email protected]>
-----
patch against 2.6.33-rc5
compiled & tested on x86_64 AMDX2 desktop machine.
I've been running with this patch applied for several weeks with no problems.
regards
Richard
include/linux/fs.h +6 -6
@@ -1314,9 +1314,9 @@ extern spinlock_t sb_lock;struct super_block {struct list_head s_list;/* Keep this first */ dev_t s_dev;/* search index; _not_ kdev_t */ -unsigned long s_blocksize; -unsigned char s_blocksize_bits;unsigned char s_dirt; +unsigned char s_blocksize_bits; +unsigned long s_blocksize;loff_t s_maxbytes;/* Max file size */ struct file_system_type *s_type;const struct super_operations *s_op;
@@ -1357,16 +1357,16 @@ struct super_block {void *s_fs_info;/* Filesystem private info */ fmode_t s_mode; +/* Granularity of c/m/atime in ns. +Cannot be worse than a second */ +u32 s_time_gran; +/* * The next field is for VFS *only*. No filesystems have any business * even looking at it. You had been warned. */ struct mutex s_vfs_rename_mutex;/* Kludge */ -/* Granularity of c/m/atime in ns. -Cannot be worse than a second */ -u32 s_time_gran; -/* * Filesystem subtype. If non-empty the filesystem type field * in /proc/mounts will be "type.subtype"