On Mon, May 13, 2019 at 02:03:44PM +0200, Christoph Hellwig wrote: > On Mon, May 13, 2019 at 05:45:45PM +0800, Ming Lei wrote: > > On Mon, May 13, 2019 at 08:37:45AM +0200, Christoph Hellwig wrote: > > > Currently ll_merge_requests_fn, unlike all other merge functions, > > > reduces nr_phys_segments by one if the last segment of the previous, > > > and the first segment of the next segement are contigous. While this > > > seems like a nice solution to avoid building smaller than possible > > > > Some workloads need this optimization, please see 729204ef49ec00b > > ("block: relax check on sg gap"): > > And we still allow to merge the segments with this patch. The only > difference is that these merges do get accounted as extra segments. Trying mkfs.xfs there were no merges at all, which is expected as it does perfectly sized direct I/O. Trying mkfs.ext4 I see lots of bio merges. But for those this patch nothing changes at all, as we never decrement nr_phys_segments to start with, we only every did that for request merges, and for those also only for those on non-gappy devices due to the way the req_gap_back_merge check was placed.