On Fri, Feb 15, 2013 at 03:06:26PM +0800, Zheng Liu wrote: > > I am planning to refine the get_block_t and *map_blocks functions. At > that time I will try to fix this problem. Note that get_block_t can't be changed without disrupting the Direct I/O functions which are generic VFS functions. There's been talk of trying to clean up DIO, but it will probably require building a parallel infrastructure in the generic layer, and then transitioning individual file systems over to it. It is definitely a mess, but it's going to be a very tricky problem. I suspect we'll be talking about it at LSF/MM. One thing thing which might be an interesting thing to do that wouldn't require wholesale changes to generic code would be to transition ext4_readpages() to use fs/ext4/page-io.c. Not for this merge window, in all likelihood, but right now we are calling ext4_get_block() for every single page that we read in, while is wasteful. It would be nice if ext4_readpages() called ext4_map_blocks() for each extent, and then submitted it using the page-io.c functions so we don't end up calling into ext4_map_blocks() quite as much. That will ease our scalability and remove locking overhead, in addition to saving CPU for the buffered I/O readpages path. Eventually it would be good to do this for DIO as well, but that's going to require a lot more work, and coordination with the developers of btrfs, xfs, etc. - Ted -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html