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.