On Thu, Nov 22, 2018 at 06:26:17PM +0800, Ming Lei wrote: > Suppose one bio includes (pg0, 0, 512) and (pg1, 512, 512): > > The split is introduced by the following code in blk_bio_segment_split(): > > if (bvprvp && bvec_gap_to_prev(q, bvprvp, bv.bv_offset)) > goto split; > > Without this patch, for non-cluster, the two bvecs are just in different > segment, but still handled by one same bio. Now you convert into two bios. Oh, true - we create new bios instead of new segments. So I guess we need to do something special here if we don't want to pay that overhead. Or just look into killing the cluster setting..