On Thu, Apr 13, 2017 at 6:06 PM, Ming Lei <ming.lei@xxxxxxxxxx> wrote: > Now commit 729204ef49ec("block: relax check on sg gap") > allows us to merge bios if both are physically contiguous, > this change can merge huge of small bios in use case of mkfs, > for example, mkfs.ntfs running time can be decreased to ~1/10. > > But if one rq starts with non-aligned buffer(the 1st bvec's > bv_offset isn't zero) and if we allow to merge, it is quite > difficult to respect sg gap limit, especially the segment > can't be at maximum segment size, otherwise the segment > ends in unaligned virt boundary. This patch trys to avoid the > issue by not allowing to merge if the req starts with non-aligned > buffer. > > Also add comments to explain why the merged segment can't > end in unaligned virt boundary. > > Fixes: 729204ef49ec ("block: relax check on sg gap") > Tested-by: Johannes Thumshirn <jthumshirn@xxxxxxx> > Reviewed-by: Johannes Thumshirn <jthumshirn@xxxxxxx> > Signed-off-by: Ming Lei <ming.lei@xxxxxxxxxx> > --- Hi Jens and Omar, I know Jens is currently on vacation, but can maybe Omar get this fix to Linus before v4.11? This would be highly appreciated. Thanks a lot, Johannes