Re: [PATCH v2 19/20] scsi: ufs: Implement polling support

Bean Huo
2021-11-30T09:15:42Z

On Tue, 2021-11-30 at 08:57 +0000, Avri Altman wrote:
> >
> > Bart,
> >
> > We look forward to the support of UFSHCD polling, I did a review
> > and test.
> > comments as below:
> >
> >
> > On Fri, 2021-11-19 at 11:57 -0800, Bart Van Assche wrote:
> > > The time spent in io_schedule() and also the interrupt latency
> > > are
> > > significant when submitting direct I/O to a UFS device. Hence
> > > this
> > > patch that implements polling support. User space software can
> > > enable
> > > polling by passing the RWF_HIPRI flag to the preadv2() system
> > > call or
> > > the IORING_SETUP_IOPOLL flag to the io_uring interface.
> > >
> > > Although the block layer supports to partition the tag space for
> > > interrupt-based completions (HCTX_TYPE_DEFAULT) purposes and
> > > polling
> > > (HCTX_TYPE_POLL), the choice has been made to use the same
> > > hardware
> > > queue for both hctx types because partitioning the tag space
> > > would
> > > negatively affect performance.
> > >
> > > On my test setup this patch increases IOPS from 2736 to 22000
> > > (8x) for
> > > the following test:
> > >
> > > for hipri in 0 1; do
> > > fio --ioengine=io_uring --iodepth=1 --rw=randread \
> > > --runtime=60 --time_based=1 --direct=1 --name=qd1 \
> > > --filename=/dev/block/sda --ioscheduler=none --gtod_reduce=1
> > > \
> > > --norandommap --hipri=$hipri
> > > done
> >
> > For 4KB random read, direct IO, and iodepth=1, we did not see an
> > improvement in IOPS due to this patch. Maybe the test case above is
> > not
> > sufficient.
> Does your setup contains commit af1830956dc3 (scsi: core: Add mq_poll
> support to SCSI layer) ?
>
> Thanks,
> Avri
>

yes, that commit was mainlined since v5.13, and I tested this patch on
v5.16.