linux/fs/ntfs
Paul Jackson 4b6a9316fa [PATCH] cpuset memory spread: slab cache filesystems
Mark file system inode and similar slab caches subject to SLAB_MEM_SPREAD
memory spreading.

If a slab cache is marked SLAB_MEM_SPREAD, then anytime that a task that's
in a cpuset with the 'memory_spread_slab' option enabled goes to allocate
from such a slab cache, the allocations are spread evenly over all the
memory nodes (task->mems_allowed) allowed to that task, instead of favoring
allocation on the node local to the current cpu.

The following inode and similar caches are marked SLAB_MEM_SPREAD:

    file                               cache
    ====                               =====
    fs/adfs/super.c                    adfs_inode_cache
    fs/affs/super.c                    affs_inode_cache
    fs/befs/linuxvfs.c                 befs_inode_cache
    fs/bfs/inode.c                     bfs_inode_cache
    fs/block_dev.c                     bdev_cache
    fs/cifs/cifsfs.c                   cifs_inode_cache
    fs/coda/inode.c                    coda_inode_cache
    fs/dquot.c                         dquot
    fs/efs/super.c                     efs_inode_cache
    fs/ext2/super.c                    ext2_inode_cache
    fs/ext2/xattr.c (fs/mbcache.c)     ext2_xattr
    fs/ext3/super.c                    ext3_inode_cache
    fs/ext3/xattr.c (fs/mbcache.c)     ext3_xattr
    fs/fat/cache.c                     fat_cache
    fs/fat/inode.c                     fat_inode_cache
    fs/freevxfs/vxfs_super.c           vxfs_inode
    fs/hpfs/super.c                    hpfs_inode_cache
    fs/isofs/inode.c                   isofs_inode_cache
    fs/jffs/inode-v23.c                jffs_fm
    fs/jffs2/super.c                   jffs2_i
    fs/jfs/super.c                     jfs_ip
    fs/minix/inode.c                   minix_inode_cache
    fs/ncpfs/inode.c                   ncp_inode_cache
    fs/nfs/direct.c                    nfs_direct_cache
    fs/nfs/inode.c                     nfs_inode_cache
    fs/ntfs/super.c                    ntfs_big_inode_cache_name
    fs/ntfs/super.c                    ntfs_inode_cache
    fs/ocfs2/dlm/dlmfs.c               dlmfs_inode_cache
    fs/ocfs2/super.c                   ocfs2_inode_cache
    fs/proc/inode.c                    proc_inode_cache
    fs/qnx4/inode.c                    qnx4_inode_cache
    fs/reiserfs/super.c                reiser_inode_cache
    fs/romfs/inode.c                   romfs_inode_cache
    fs/smbfs/inode.c                   smb_inode_cache
    fs/sysv/inode.c                    sysv_inode_cache
    fs/udf/super.c                     udf_inode_cache
    fs/ufs/super.c                     ufs_inode_cache
    net/socket.c                       sock_inode_cache
    net/sunrpc/rpc_pipe.c              rpc_inode_cache

The choice of which slab caches to so mark was quite simple.  I marked
those already marked SLAB_RECLAIM_ACCOUNT, except for fs/xfs, dentry_cache,
inode_cache, and buffer_head, which were marked in a previous patch.  Even
though SLAB_RECLAIM_ACCOUNT is for a different purpose, it marks the same
potentially large file system i/o related slab caches as we need for memory
spreading.

Given that the rule now becomes "wherever you would have used a
SLAB_RECLAIM_ACCOUNT slab cache flag before (usually the inode cache), use
the SLAB_MEM_SPREAD flag too", this should be easy enough to maintain.
Future file system writers will just copy one of the existing file system
slab cache setups and tend to get it right without thinking.

Signed-off-by: Paul Jackson <pj@sgi.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-24 07:33:23 -08:00
..
aops.c NTFS: Semaphore to mutex conversion. 2006-03-23 16:57:48 +00:00
aops.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
attrib.c NTFS: Remove all the make_bad_inode() calls. This should only be called 2006-03-23 15:59:32 +00:00
attrib.h NTFS: Add fs/ntfs/attrib.[hc]::ntfs_attr_extend_allocation(), a function to 2005-10-04 15:18:56 +01:00
bitmap.c NTFS: Fix a stupid bug in __ntfs_bitmap_set_bits_in_run() which caused the 2005-10-04 13:06:00 +01:00
bitmap.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ChangeLog NTFS: Semaphore to mutex conversion. 2006-03-23 16:57:48 +00:00
collate.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
collate.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
compress.c NTFS: Semaphore to mutex conversion. 2006-03-23 16:57:48 +00:00
debug.c NTFS: Fix printk format warnings on ia64. (Randy Dunlap) 2005-05-05 11:11:47 +01:00
debug.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dir.c NTFS: Fix two compiler warnings on Alpha. Thanks to Andrew Morton for 2006-03-07 11:53:46 +00:00
dir.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
endian.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
file.c NTFS: Remove all the make_bad_inode() calls. This should only be called 2006-03-23 15:59:32 +00:00
index.c [PATCH] mutex subsystem, semaphore to mutex: VFS, ->i_sem 2006-01-09 15:59:24 -08:00
index.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
inode.c NTFS: Semaphore to mutex conversion. 2006-03-23 16:57:48 +00:00
inode.h NTFS: Semaphore to mutex conversion. 2006-03-23 16:57:48 +00:00
layout.h NTFS: Improve comments on file attribute flags in fs/ntfs/layout.h. 2006-03-23 16:09:40 +00:00
lcnalloc.c NTFS: - Change ntfs_cluster_alloc() to take an extra boolean parameter 2005-10-04 14:36:56 +01:00
lcnalloc.h NTFS: - Change ntfs_cluster_alloc() to take an extra boolean parameter 2005-10-04 14:36:56 +01:00
logfile.c NTFS: More $LogFile handling fixes: when chkdsk has been run, it can leave the 2005-09-26 10:48:54 +01:00
logfile.h NTFS: Fix sparse warnings that have crept in over time. 2005-09-22 13:26:44 +01:00
Makefile NTFS: Fix an (innocent) off-by-one error in the runlist code. 2006-03-23 14:57:43 +00:00
malloc.h NTFS: In attrib.c::ntfs_attr_set() call balance_dirty_pages_ratelimited() 2005-10-11 14:54:42 +01:00
mft.c NTFS: Semaphore to mutex conversion. 2006-03-23 16:57:48 +00:00
mft.h NTFS: Remove all the make_bad_inode() calls. This should only be called 2006-03-23 15:59:32 +00:00
mst.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
namei.c NTFS: Handle the recently introduced -ENAMETOOLONG return value from 2006-03-23 16:25:23 +00:00
ntfs.h NTFS: Semaphore to mutex conversion. 2006-03-23 16:57:48 +00:00
quota.c [PATCH] mutex subsystem, semaphore to mutex: VFS, ->i_sem 2006-01-09 15:59:24 -08:00
quota.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
runlist.c NTFS: Fix an (innocent) off-by-one error in the runlist code. 2006-03-23 14:57:43 +00:00
runlist.h NTFS: Add ntfs_rl_punch_nolock() which punches a caller specified hole into a runlist. 2005-09-08 20:26:34 +01:00
super.c [PATCH] cpuset memory spread: slab cache filesystems 2006-03-24 07:33:23 -08:00
sysctl.c NTFS: - Add disable_sparse mount option together with a per volume sparse 2005-05-05 10:53:01 +01:00
sysctl.h [PATCH] turn many #if $undefined_string into #ifdef $undefined_string 2005-07-27 16:26:08 -07:00
time.h NTFS: Change time to u64 in time.h::ntfs2utc() as it otherwise generates a 2005-05-05 11:01:13 +01:00
types.h NTFS: Stamp the transaction log ($UsnJrnl), aka user space journal, if it 2005-06-25 15:28:56 +01:00
unistr.c NTFS: Limit name length in fs/ntfs/unistr.c::ntfs_nlstoucs() to maximum 2006-03-23 16:05:11 +00:00
upcase.c NTFS: Do more detailed reporting of why we cannot mount read-write by 2006-02-24 10:48:14 +00:00
usnjrnl.c NTFS: Stamp the transaction log ($UsnJrnl), aka user space journal, if it 2005-06-25 15:28:56 +01:00
usnjrnl.h NTFS: Stamp the transaction log ($UsnJrnl), aka user space journal, if it 2005-06-25 15:28:56 +01:00
volume.h NTFS: Do more detailed reporting of why we cannot mount read-write by 2006-02-24 10:48:14 +00:00