This series is a part of the nilfs updates I am planning to send to
the next merge window. In this series, I did some performance tuning
based on ftrace analyses. There are other chances to get much gain,
but I once break this work to give priority to remaining bugfix patch
submission to upstream.
Changes since the latest -next tree are as follows:
- Eliminate redundant lock buffer uses from btree and inode code.
- Move out mark_inode_dirty uses from bmap routines to shorten the
time of file removals.
- Allow each metadata file to allocate private memory for individual
optimization.
- Reduce overhead of begin-transaction function due to metadata file
access.
- Add a cache framework for persistent object allocator to make
access to DAT or ifile faster.
- Cleanup related to these changes.
There is neither ABI change nor disk format change in this series. I
will later push them to for-next branch of the nilfs tree:
git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke/nilfs2.git
Thanks,
Ryusuke Konishi
--
Ryusuke Konishi (23):
nilfs2: remove buffer locking in nilfs_mark_inode_dirty
nilfs2: remove buffer locking from btree code
nilfs2: stop marking metadata inode dirty within btree operations
nilfs2: move out mark_inode_dirty calls from bmap routines
nilfs2: add size option of private object to metadata file allocator
nilfs2: separate constructor of metadata files
nilfs2: separate read method of meta data files on super root block
nilfs2: eliminate inlines to directly read/write inode of metadata files
nilfs2: hide nilfs_mdt_clear calls in nilfs_mdt_destroy
nilfs2: unfold nilfs_sufile_block_get_header function
nilfs2: add local variable to cache the number of clean segments
nilfs2: simplify nilfs_sufile_get_ncleansegs function
nilfs2: avoid readahead on metadata file for create mode
nilfs2: separate function for creating new btree node block
nilfs2: use nilfs_btnode_create_block function
nilfs2: remove newblk argument from nilfs_btnode_submit_block
nilfs2: eliminate nilfs_btnode_get function
nilfs2: unfold nilfs_palloc_block_get_bitmap function
nilfs2: add cache framework for persistent object allocator
nilfs2: add palloc cache to dat
nilfs2: flush palloc cache before manipulating data pages of GC dat
nilfs2: add palloc cache to ifile
nilfs2: insert cache operation in palloc get block routines
fs/nilfs2/alloc.c | 108 +++++++++++++++++++++++++++++++++++----------
fs/nilfs2/alloc.h | 21 +++++++++
fs/nilfs2/bmap.c | 8 ---
fs/nilfs2/btnode.c | 76 ++++++++++++++-----------------
fs/nilfs2/btnode.h | 6 +-
fs/nilfs2/btree.c | 86 ++++++++---------------------------
fs/nilfs2/cpfile.c | 26 +++++++++++
fs/nilfs2/cpfile.h | 3 +
fs/nilfs2/dat.c | 47 ++++++++++++++++++++
fs/nilfs2/dat.h | 3 +
fs/nilfs2/gcdat.c | 3 +
fs/nilfs2/gcinode.c | 6 +-
fs/nilfs2/ifile.c | 35 +++++++++++++++
fs/nilfs2/ifile.h | 2 +
fs/nilfs2/inode.c | 6 +-
fs/nilfs2/mdt.c | 56 +++++++++++++++--------
fs/nilfs2/mdt.h | 25 ++--------
fs/nilfs2/recovery.c | 6 ---
fs/nilfs2/segment.c | 12 +++---
fs/nilfs2/sufile.c | 117 ++++++++++++++++++++++++++++++++-----------------
fs/nilfs2/sufile.h | 6 ++-
fs/nilfs2/super.c | 7 +---
fs/nilfs2/the_nilfs.c | 65 ++++++++-------------------
23 files changed, 437 insertions(+), 293 deletions(-)
_______________________________________________
users mailing list
[email protected]
https://www.nilfs.org/mailman/listinfo/users