Hi James/Martin,

This is RFC to get comment about propose poll_queue interface in scsi layer.

The blk_mq layer allows polling a transport for a specific completion if
the HIPRI request flag is set. This can be accomplished by using
"libengine=pvsync2 –hipri" option in FIO tool. This flag then allows
polling into LLDD to service specific compeletion queue for IOs. It also
removes the interrupt latency and significantly improved performance in NVMeF 
that utilizes it. There is expense of higher CPU utlization due to active 
polling.
    
Here's sample results for comparision
    
FiO command line with synchronous IO’s results in latency avg=32.73us reported 
by FIO

./fio/fio  --time_based --ioengine=sync --direct=1 --runtime=30 
--readwrite=read \
    --iodepth=1 --blocksize=4k --name=job0 --group_reporting --filename=/dev/sdd
    
FIO command line with active polling IO’s results in latency avg=26.04 reported 
by FIO

./fio/fio  --time_based --ioengine=pvsync2 --hipri --direct=1 --runtime=30 \
    --readwrite=read --iodepth=1 --blocksize=4k --name=job0 --group_reporting \
    --filename=/dev/sdd
    
FIO version 2.17

Thanks,
Himanshu

Darren Trapp (2):
  scsi: Provide mechanism for SCSI layer to poll for LLDD.
  qla2xxx: Driver changes to use new poll_queue() callback

 drivers/scsi/qla2xxx/qla_os.c | 36 ++++++++++++++++++++++++++++++++++++
 drivers/scsi/scsi_lib.c       | 39 +++++++++++++++++++++++++++++++++++++++
 include/scsi/scsi_host.h      | 12 ++++++++++++
 3 files changed, 87 insertions(+)

-- 
2.12.0

Reply via email to