On Mon, Jul 04, 2016 at 05:47:09PM +0200, Jan Kara wrote: > > Good point that the block device is plugged. Ultimately I suspect the > > way to fix the scalability problem will be move to dioread nolock as > > the default, and use separate transaction to map the blocks using the > > uninitialized flags, and then do a separate transaction to convert > > them afterwards. > > This is what already happens currently - we only reserve a handle for > conversion during writeback but that reservation fluently moves between > running transactions until a point where the reserved handle is started - > then the handle is pinned to the currently running transaction - and this > happens only in the completion handler after IO is completed. Yes, but dioread_nolock only works with block size == page size. What we need to do is to make it work for all block sizes, then make dioread_nolock the default, and then remove the old direct I/O write path.... - 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