RE: [PATCH] block: loose check on sg gap

From: Dexuan Cui
Date: Mon Dec 19 2016 - 22:57:27 EST


> From: Jens Axboe [mailto:axboe@xxxxxx]
> Sent: Tuesday, December 20, 2016 10:31
> To: Ming Lei <ming.lei@xxxxxxxxxxxxx>
> Cc: Linux Kernel Mailing List <linux-kernel@xxxxxxxxxxxxxxx>; linux-block <linux-
> block@xxxxxxxxxxxxxxx>; Christoph Hellwig <hch@xxxxxxxxxxxxx>; Dexuan Cui
> <decui@xxxxxxxxxxxxx>; Vitaly Kuznetsov <vkuznets@xxxxxxxxxx>; Keith Busch
> <keith.busch@xxxxxxxxx>; Hannes Reinecke <hare@xxxxxxx>; Mike Christie
> <mchristi@xxxxxxxxxx>; Martin K. Petersen <martin.petersen@xxxxxxxxxx>;
> Toshi Kani <toshi.kani@xxxxxxx>; Dan Williams <dan.j.williams@xxxxxxxxx>;
> Damien Le Moal <damien.lemoal@xxxxxxxx>
> Subject: Re: [PATCH] block: loose check on sg gap
>
> On 12/19/2016 07:07 PM, Ming Lei wrote:
> > On Sun, Dec 18, 2016 at 12:49 AM, Jens Axboe <axboe@xxxxxx> wrote:
> >> On 12/17/2016 03:49 AM, Ming Lei wrote:
> >>> If the last bvec of the 1st bio and the 1st bvec of the next
> >>> bio are contineous physically, and the latter can be merged
> >>> to last segment of the 1st bio, we should think they don't
> >>> violate sg gap(or virt boundary) limit.
> >>>
> >>> Both Vitaly and Dexuan reported lots of unmergeable small bios
> >>> are observed when running mkfs on Hyper-V virtual storage, and
> >>> performance becomes quite low, so this patch is figured out for
> >>> fixing the performance issue.
> >>>
> >>> The same issue should exist on NVMe too sine it sets virt boundary too.
> >>
> >> It looks pretty reasonable to me. I'll queue it up for some testing,
> >> changes like this always make me a little nervous.
> >
> > Understood.
> >
> > But given it is still in early stage of 4.10 cycle, seems fine to expose
> > it now, and we should have enough time to fix it if there might be
> > regressions.
> >
> > BTW, it passes my xfstest(ext4) over sata/NVMe.
>
> It's been fine here in testing, too. I'm not worried about performance
> regressions, those we can always fix. Merging makes me worried about
> corruption, and those regressions are much worse.
>
> Any reason we need to rush this? I'd be more comfortable pushing this to
> 4.11, unless there are strong reasons this should make 4.10.
>
> --
> Jens Axboe

Hi Jens,

As far as I know, the patch is important to popular Linux distros,
e.g. at least Ubuntu 14.04.5, 16.x and RHEL 7.3, when they run on
Hyper-V/Azure, because they can suffer from a pretty bad throughput/latency
in some cases, e.g. mkfs.ext4 for a 100GB partition can take 8 minutes, but
with the patch, it only takes 1 second.

Thanks,
-- Dexuan