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

From: Dexuan Cui
Date: Wed Jan 11 2017 - 00:11:00 EST


> From: Dexuan Cui
> Sent: Tuesday, December 20, 2016 11:41
> To: 'Jens Axboe' <axboe@xxxxxx>; Ming Lei <ming.lei@xxxxxxxxxxxxx>
> Cc: Linux Kernel Mailing List <linux-kernel@xxxxxxxxxxxxxxx>; linux-block
> <linux-block@xxxxxxxxxxxxxxx>; Christoph Hellwig <hch@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
>
> > 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.
>
> -- Dexuan

Hi Ming, Jens,
Did you find any issue later when testing with the patch?

May I know if it's possible to have it in 4.10 considering the above impact?

Is it on some temporary branch of linux-block.git? Looks not.

Thanks,
-- Dexuan