kernel-ark/fs/gfs2
Steven Whitehouse 6dbd822487 [GFS2] Reduce inode size by moving i_alloc out of line
It is possible to reduce the size of GFS2 inodes by taking the i_alloc
structure out of the gfs2_inode. This patch allocates the i_alloc
structure whenever its needed, and frees it afterward. This decreases
the amount of low memory we use at the expense of requiring a memory
allocation for each page or partial page that we write. A quick test
with postmark shows that the overhead is not measurable and I also note
that OCFS2 use the same approach.

In the future I'd like to solve the problem by shrinking down the size
of the members of the i_alloc structure, but for now, this reduces the
immediate problem of using too much low-memory on x86 and doesn't add
too much overhead.

Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
2008-01-25 08:18:25 +00:00
..
locking [GFS2] use pid for plock owner for nfs clients 2008-01-25 08:08:23 +00:00
acl.c
acl.h
bmap.c [GFS2] Reduce inode size by moving i_alloc out of line 2008-01-25 08:18:25 +00:00
bmap.h [GFS2] Remove function gfs2_get_block 2008-01-25 08:08:25 +00:00
daemon.c [GFS2] Move gfs2_logd into log.c 2008-01-25 08:07:56 +00:00
daemon.h [GFS2] Move gfs2_logd into log.c 2008-01-25 08:07:56 +00:00
dir.c [GFS2] Reduce inode size by moving i_alloc out of line 2008-01-25 08:18:25 +00:00
dir.h
eaops.c [GFS2] Remove unrequired code 2008-01-25 08:08:13 +00:00
eaops.h
eattr.c [GFS2] Reduce inode size by moving i_alloc out of line 2008-01-25 08:18:25 +00:00
eattr.h
gfs2.h
glock.c [GFS2] Reorganize function gfs2_glmutex_lock 2008-01-25 08:13:52 +00:00
glock.h
glops.c [GFS2] Reorder writeback for glock sync 2008-01-25 08:07:42 +00:00
glops.h
incore.h [GFS2] Reduce inode size by moving i_alloc out of line 2008-01-25 08:18:25 +00:00
inode.c [GFS2] Reduce inode size by moving i_alloc out of line 2008-01-25 08:18:25 +00:00
inode.h [GFS2] Introduce gfs2_set_aops() 2008-01-25 08:07:23 +00:00
Kconfig
lm.c
lm.h
locking.c
log.c [GFS2] Fix assert in log code 2008-01-25 08:18:03 +00:00
log.h [GFS2] Move gfs2_logd into log.c 2008-01-25 08:07:56 +00:00
lops.c [GFS2] Don't add glocks to the journal 2008-01-25 08:07:52 +00:00
lops.h
main.c [GFS2] Reduce inode size by moving i_alloc out of line 2008-01-25 08:18:25 +00:00
Makefile [GFS2] Use ->page_mkwrite() for mmap() 2008-01-25 08:07:13 +00:00
meta_io.c [GFS2] Function meta_read optimization 2008-01-25 08:14:33 +00:00
meta_io.h [GFS2] Remove useless i_cache from inodes 2008-01-25 08:07:16 +00:00
mount.c
mount.h
ops_address.c [GFS2] Reduce inode size by moving i_alloc out of line 2008-01-25 08:18:25 +00:00
ops_address.h [GFS2] Remove function gfs2_get_block 2008-01-25 08:08:25 +00:00
ops_dentry.c
ops_dentry.h
ops_export.c exportfs: make struct export_operations const 2007-10-22 08:13:21 -07:00
ops_file.c [GFS2] Reduce inode size by moving i_alloc out of line 2008-01-25 08:18:25 +00:00
ops_fstype.c [GFS2] Initialize extent_list earlier 2008-01-25 08:17:04 +00:00
ops_fstype.h exportfs: make struct export_operations const 2007-10-22 08:13:21 -07:00
ops_inode.c [GFS2] Reduce inode size by moving i_alloc out of line 2008-01-25 08:18:25 +00:00
ops_inode.h [GFS2] Remove lock methods for lock_nolock protocol 2008-01-25 08:08:15 +00:00
ops_super.c [GFS2] Remove unused field in struct gfs2_inode 2008-01-25 08:07:18 +00:00
ops_super.h
quota.c [GFS2] Reduce inode size by moving i_alloc out of line 2008-01-25 08:18:25 +00:00
quota.h
recovery.c [GFS2] Remove function gfs2_get_block 2008-01-25 08:08:25 +00:00
recovery.h
rgrp.c [GFS2] Reduce inode size by moving i_alloc out of line 2008-01-25 08:18:25 +00:00
rgrp.h [GFS2] Reduce inode size by moving i_alloc out of line 2008-01-25 08:18:25 +00:00
super.c [GFS2] Initialize extent_list earlier 2008-01-25 08:17:04 +00:00
super.h
sys.c [GFS2] Don't periodically update the jindex 2008-01-25 08:07:59 +00:00
sys.h
trans.c [GFS2] Don't add glocks to the journal 2008-01-25 08:07:52 +00:00
trans.h [GFS2] Don't add glocks to the journal 2008-01-25 08:07:52 +00:00
util.c
util.h