Re: [PATCH v6 1/4] md: add support for REQ_NOWAIT

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Dec 22, 2021 at 6:57 PM Song Liu <song@xxxxxxxxxx> wrote:
>
> On Tue, Dec 21, 2021 at 12:06 PM Vishal Verma <vverma@xxxxxxxxxxxxxxxx> wrote:
> >
> > commit 021a24460dc2 ("block: add QUEUE_FLAG_NOWAIT") added support
> > for checking whether a given bdev supports handling of REQ_NOWAIT or not.
> > Since then commit 6abc49468eea ("dm: add support for REQ_NOWAIT and enable
> > it for linear target") added support for REQ_NOWAIT for dm. This uses
> > a similar approach to incorporate REQ_NOWAIT for md based bios.
> >
> > This patch was tested using t/io_uring tool within FIO. A nvme drive
> > was partitioned into 2 partitions and a simple raid 0 configuration
> > /dev/md0 was created.
> >
> > md0 : active raid0 nvme4n1p1[1] nvme4n1p2[0]
> >       937423872 blocks super 1.2 512k chunks
> >
> > Before patch:
> >
> > $ ./t/io_uring /dev/md0 -p 0 -a 0 -d 1 -r 100
> >
> > Running top while the above runs:
> >
> > $ ps -eL | grep $(pidof io_uring)
> >
> >   38396   38396 pts/2    00:00:00 io_uring
> >   38396   38397 pts/2    00:00:15 io_uring
> >   38396   38398 pts/2    00:00:13 iou-wrk-38397
> >
> > We can see iou-wrk-38397 io worker thread created which gets created
> > when io_uring sees that the underlying device (/dev/md0 in this case)
> > doesn't support nowait.
> >
> > After patch:
> >
> > $ ./t/io_uring /dev/md0 -p 0 -a 0 -d 1 -r 100
> >
> > Running top while the above runs:
> >
> > $ ps -eL | grep $(pidof io_uring)
> >
> >   38341   38341 pts/2    00:10:22 io_uring
> >   38341   38342 pts/2    00:10:37 io_uring
> >
> > After running this patch, we don't see any io worker thread
> > being created which indicated that io_uring saw that the
> > underlying device does support nowait. This is the exact behaviour
> > noticed on a dm device which also supports nowait.
> >
> > For all the other raid personalities except raid0, we would need
> > to train pieces which involves make_request fn in order for them
> > to correctly handle REQ_NOWAIT.
> >
> > Signed-off-by: Vishal Verma <vverma@xxxxxxxxxxxxxxxx>
>
> I have made some changes and applied the set to md-next. However,
> I think we don't yet have enough test coverage. Please continue testing
> the code and send fixes on top of it. Based on the test results, we will
> see whether we can ship it in the next merge window.
>
> Note, md-next branch doesn't have [1], so we need to cherry-pick it
> for testing.

I went through all these changes again and tested many (but not all)
cases. The latest version is available in md-next branch.

Vishal, please run tests on this version and send fixes if anything
is broken.

Thanks,
Song



[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux