alistair23-linux/fs/nilfs2
Ryusuke Konishi db38d5ad32 nilfs2: add cache framework for persistent object allocator
This adds setup and cleanup routines of the persistent object
allocator cache.

According to ftrace analyses, accessing buffers of the DAT file
suffers indispensable overhead many times.  To mitigate the overhead,
This introduce cache framework for the persistent object allocator
(palloc) which the DAT file and ifile are using.

struct nilfs_palloc_cache represents the cache object per metadata
file using palloc.

The cache is initialized through nilfs_palloc_setup_cache() and
destroyed by nilfs_palloc_destroy_cache(); callers of the former
function will be added to individual allocators of DAT and ifile on
successive patches.

nilfs_palloc_destroy_cache() will be called from nilfs_mdt_destroy()
if the cache is attached to a metadata file.  A companion function
nilfs_palloc_clear_cache() is provided to allow releasing buffer head
references independently with the cleanup task.  This adjunctive
function will be used before invalidating pages of metadata file with
the cache.

Signed-off-by: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
2009-11-20 10:05:50 +09:00
..
alloc.c nilfs2: add cache framework for persistent object allocator 2009-11-20 10:05:50 +09:00
alloc.h nilfs2: add cache framework for persistent object allocator 2009-11-20 10:05:50 +09:00
bmap.c nilfs2: move out mark_inode_dirty calls from bmap routines 2009-11-20 10:05:47 +09:00
bmap.h nilfs2: convert nilfs_bmap_lookup to an inline function 2009-09-14 18:27:16 +09:00
bmap_union.h
btnode.c nilfs2: eliminate nilfs_btnode_get function 2009-11-20 10:05:50 +09:00
btnode.h nilfs2: eliminate nilfs_btnode_get function 2009-11-20 10:05:50 +09:00
btree.c nilfs2: eliminate nilfs_btnode_get function 2009-11-20 10:05:50 +09:00
btree.h nilfs2: move definition of struct nilfs_btree_node 2009-11-20 10:05:46 +09:00
cpfile.c nilfs2: separate read method of meta data files on super root block 2009-11-20 10:05:48 +09:00
cpfile.h nilfs2: separate read method of meta data files on super root block 2009-11-20 10:05:48 +09:00
dat.c nilfs2: separate read method of meta data files on super root block 2009-11-20 10:05:48 +09:00
dat.h nilfs2: separate read method of meta data files on super root block 2009-11-20 10:05:48 +09:00
dir.c const: constify remaining file_operations 2009-10-01 16:11:11 -07:00
direct.c nilfs2: allow btree code to directly call dat operations 2009-09-14 18:27:16 +09:00
direct.h nilfs2: remove nilfs_direct_operations from direct mapping 2009-06-10 23:41:11 +09:00
file.c const: constify remaining file_operations 2009-10-01 16:11:11 -07:00
gcdat.c nilfs2: another dat for garbage collection 2009-04-07 08:31:16 -07:00
gcinode.c nilfs2: remove newblk argument from nilfs_btnode_submit_block 2009-11-20 10:05:50 +09:00
ifile.c nilfs2: separate constructor of metadata files 2009-11-20 10:05:48 +09:00
ifile.h nilfs2: separate constructor of metadata files 2009-11-20 10:05:48 +09:00
inode.c nilfs2: move out mark_inode_dirty calls from bmap routines 2009-11-20 10:05:47 +09:00
ioctl.c nilfs2: fix lock order reversal in chcp operation 2009-11-13 10:33:24 +09:00
Kconfig fs/Kconfig: move nilfs2 outside misc filesystems 2009-09-14 18:27:16 +09:00
Makefile nilfs2: update makefile and Kconfig 2009-04-07 08:31:16 -07:00
mdt.c nilfs2: add cache framework for persistent object allocator 2009-11-20 10:05:50 +09:00
mdt.h nilfs2: add cache framework for persistent object allocator 2009-11-20 10:05:50 +09:00
namei.c const: mark remaining inode_operations as const 2009-09-22 07:17:24 -07:00
nilfs.h const: constify remaining file_operations 2009-10-01 16:11:11 -07:00
page.c nilfs2: ensure to clear dirty state when deleting metadata file block 2009-05-10 17:04:42 +09:00
page.h nilfs2: buffer and page operations 2009-04-07 08:31:13 -07:00
recovery.c nilfs2: hide nilfs_mdt_clear calls in nilfs_mdt_destroy 2009-11-20 10:05:48 +09:00
sb.h nilfs2: simplify remaining sget() use 2009-06-11 21:36:18 -04:00
segbuf.c nilfs2: use GFP_NOIO for bio_alloc instead of GFP_NOWAIT 2009-09-14 18:27:14 +09:00
segbuf.h nilfs2: simplify handling of active state of segments 2009-04-07 08:31:20 -07:00
segment.c nilfs2: eliminate inlines to directly read/write inode of metadata files 2009-11-20 10:05:48 +09:00
segment.h nilfs2: remove header file for segment list operations 2009-06-10 23:41:09 +09:00
sufile.c nilfs2: simplify nilfs_sufile_get_ncleansegs function 2009-11-20 10:05:49 +09:00
sufile.h nilfs2: simplify nilfs_sufile_get_ncleansegs function 2009-11-20 10:05:49 +09:00
super.c nilfs2: hide nilfs_mdt_clear calls in nilfs_mdt_destroy 2009-11-20 10:05:48 +09:00
the_nilfs.c nilfs2: simplify nilfs_sufile_get_ncleansegs function 2009-11-20 10:05:49 +09:00
the_nilfs.h nilfs2: shorten freeze period due to GC in write operation v3 2009-09-14 18:27:15 +09:00