[PATCH 0/4] nilfs2 read ahead btree sibling nodes

2010-07-17 Thread Ryusuke Konishi
This series introduces readahead for btree lookup function and mitigates read performance penalty that nilfs incurs on some devices. As a result of performance analysis, I found access to btree node blocks at leaf level slows down the speed of sequential read of file data or directory. Data

[PATCH 4/4] nilfs2: apply read-ahead for nilfs_btree_lookup_contig

2010-07-17 Thread Ryusuke Konishi
This applies read-ahead to nilfs_btree_do_lookup and nilfs_btree_lookup_contig functions and extends them to read ahead siblings of level 1 btree nodes that hold data blocks. At present, the read-ahead is not applied to most btree operations; only get_block() callback function, which is used

[PATCH 2/4] nilfs2: add btree get block function with readahead option

2010-07-17 Thread Ryusuke Konishi
This adds __nilfs_btree_get_block() function that can issue a series of read-ahead requests for sibling btree nodes. This read-ahead needs parent node block, so nilfs_btree_readahead_info structure is added to pass the information that __nilfs_btree_get_block() needs. This also replaces the

[PATCH 1/4] nilfs2: add read ahead mode to nilfs_btnode_submit_block

2010-07-17 Thread Ryusuke Konishi
This adds mode argument to nilfs_btnode_submit_block() function and allows it to issue a read-ahead request. An optional submit_ptr argument is also added to store the actual block address for which bio is sent. submit_ptr is used for a series of read-ahead requests, and helps to decide if each

[PATCH 3/4] nilfs2: introduce check flag to btree node buffer

2010-07-17 Thread Ryusuke Konishi
nilfs_btree_get_block() now may return untested buffer due to read-ahead This adds new flag for buffer heads so that the btree code can check whether the buffer is already verified or not. Signed-off-by: Ryusuke Konishi konishi.ryus...@lab.ntt.co.jp --- fs/nilfs2/btree.c | 10 +-