On Mon 04-07-16 22:43:30, Ted Tso wrote: > 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.... Yes, I completely agree. Honza -- Jan Kara <jack@xxxxxxxx> SUSE Labs, CR -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html