Whamcloud - gitweb
libext2fs: readahead for meta_bg
authorAlexey Lyashkov <alexey.lyashkov@seagate.com>
Wed, 1 Mar 2017 20:03:54 +0000 (15:03 -0500)
committerTheodore Ts'o <tytso@mit.edu>
Wed, 1 Mar 2017 20:04:05 +0000 (15:04 -0500)
There are ~37k of random IOs with meta_bg option on 300T target.
Debugfs requires 20 minutes to be started. Enabling readahead for
group blocks metadata save time dramatically. Only 12s to start.

Signed-off-by: Alexey Lyashkov <alexey.lyashkov@seagate.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Andreas Dilger <adilger@dilger.ca>
lib/ext2fs/openfs.c

index ba39e01..93b02ed 100644 (file)
@@ -421,6 +421,12 @@ errcode_t ext2fs_open2(const char *name, const char *io_options,
 #endif
                dest += fs->blocksize*first_meta_bg;
        }
+
+       for (i = first_meta_bg ; i < fs->desc_blocks; i++) {
+               blk = ext2fs_descriptor_block_loc2(fs, group_block, i);
+               io_channel_cache_readahead(fs->io, blk, 1);
+       }
+
        for (i=first_meta_bg ; i < fs->desc_blocks; i++) {
                blk = ext2fs_descriptor_block_loc2(fs, group_block, i);
                retval = io_channel_read_blk64(fs->io, blk, 1, dest);