Merge patch series "Add poll support for hisi_sas v3 hw"
authorMartin K. Petersen <martin.petersen@oracle.com>
Fri, 10 Mar 2023 02:50:53 +0000 (21:50 -0500)
committerMartin K. Petersen <martin.petersen@oracle.com>
Fri, 10 Mar 2023 02:50:53 +0000 (21:50 -0500)
commit99e0cd4d552a152c4e453511997441d1d0dde3cc
treee1453f6226f21b9aa0a1eef3a77f1f9c61988394
parent7466a7a33f376e2c0bc17f9b1e4c1fb8620fd4e2
parent0c2fb1701155062b842cdff69475482029fa8b14
Merge patch series "Add poll support for hisi_sas v3 hw"

chenxiang <chenxiang66@hisilicon.com> says:

To support IO_URING IOPOLL support for hisi_sas, we need to:

 - Add and fill mq_poll interface to poll queue;

 - Ensure internal I/Os (including internal abort I/Os) are delivered and
   completed through non-iopoll queue (queue 0);

Sending internal abort commands to non-poll queue actually requires to
sending the abort command to every queue. This carries a a risk. Make iopoll
support module parameter "experimental".

I have tested performance on v3 hw with different modes as follows.  4K
READs and 4K WRITEs both see an improvement when enabling poll mode:

4K READ     4K RANDREAD     4K WRITE 4K RANDWRITE
interrupt + libaio 1770k     1316k     1197k 831k
interrupt + io_uring 1848k     1390k     1238k 857k
iopoll + io_uring 2117k     1364k     1874k 849k

Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>