mbox series

[0/6] hisi_sas: Expose multiple hw queues for v3 hw as experimental

Message ID 1571926881-75524-1-git-send-email-john.garry@huawei.com
Headers show
Series hisi_sas: Expose multiple hw queues for v3 hw as experimental | expand

Message

John Garry Oct. 24, 2019, 2:21 p.m. UTC
This series adds support to expose multiple hw queues for SCSI mid-layer
as an experimental feature.

For now it is experimental due to known CPU hotplug issue for managed
interrupts.

So now we have two module parameters to enable managed interrupts for v3
hw driver:
- auto_affine_msi_experimental:
Use managed interrupts plus and manage reply map internally. Use
request tag for IPTT (apart from reserved commands).
- expose_mq_experimental
Use managed interrupts plus and expose multipe hw queues. Manage IPTT
internally with sbitmap.

Paramater auto_affine_msi_experimental shows better performance (than
expose_mq_experimental), so we need to maintain it for now to stop
complaints about performance regression (even though enabling this
parameter is unsafe).

I want to remove these module parameters ASAP.

This series also includes a change to convert the driver to use sbitmap
where possible for managing IPTT.

This series is based on 5.4 + [0], even though being advertised for
topic-sas-5.4 dev branch. Sorry for send before that is merged, but I just
wanted to get these posted.

[0] https://lore.kernel.org/linux-scsi/1571674935-108326-1-git-send-email-john.garry@huawei.com/T/#t


John Garry (6):
  scsi: hisi_sas: Use sbitmap for IPTT management
  scsi: hisi_sas: Pass scsi_cmnd pointer to hisi_sas_hw.slot_index_alloc
  scsi: hisi_sas: Add bitmaps_alloc_v3_hw()
  scsi: hisi_sas: Add slot_index_alloc_v3_hw() and
    slot_index_free_v3_hw()
  scsi: hisi_sas: Split interrupt_init_v3_hw()
  scsi: hisi_sas: Expose multiple hw queues for v3 as experimental

 drivers/scsi/hisi_sas/hisi_sas.h       |  12 ++-
 drivers/scsi/hisi_sas/hisi_sas_main.c  | 135 ++++++++++++-------------
 drivers/scsi/hisi_sas/hisi_sas_v2_hw.c | 110 +++++++++++++-------
 drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 100 ++++++++++++++++--
 4 files changed, 242 insertions(+), 115 deletions(-)

-- 
2.17.1

Comments

John Garry Oct. 25, 2019, 4:04 p.m. UTC | #1
On 24/10/2019 15:21, John Garry wrote:
> This series adds support to expose multiple hw queues for SCSI mid-layer

> as an experimental feature.

> 

> For now it is experimental due to known CPU hotplug issue for managed

> interrupts.

> 

> So now we have two module parameters to enable managed interrupts for v3

> hw driver:

> - auto_affine_msi_experimental:

> Use managed interrupts plus and manage reply map internally. Use

> request tag for IPTT (apart from reserved commands).

> - expose_mq_experimental

> Use managed interrupts plus and expose multipe hw queues. Manage IPTT

> internally with sbitmap.

> 

> Paramater auto_affine_msi_experimental shows better performance (than

> expose_mq_experimental), so we need to maintain it for now to stop

> complaints about performance regression (even though enabling this

> parameter is unsafe).

> 

> I want to remove these module parameters ASAP.

> 

> This series also includes a change to convert the driver to use sbitmap

> where possible for managing IPTT.


Hi Martin,

Can we hold off on this series until Ming has had a look?

Thanks,
John

> 

> This series is based on 5.4 + [0], even though being advertised for

> topic-sas-5.4 dev branch. Sorry for send before that is merged, but I just

> wanted to get these posted.

> 

> [0] https://lore.kernel.org/linux-scsi/1571674935-108326-1-git-send-email-john.garry@huawei.com/T/#t

> 

> 

> John Garry (6):

>    scsi: hisi_sas: Use sbitmap for IPTT management

>    scsi: hisi_sas: Pass scsi_cmnd pointer to hisi_sas_hw.slot_index_alloc

>    scsi: hisi_sas: Add bitmaps_alloc_v3_hw()

>    scsi: hisi_sas: Add slot_index_alloc_v3_hw() and

>      slot_index_free_v3_hw()

>    scsi: hisi_sas: Split interrupt_init_v3_hw()

>    scsi: hisi_sas: Expose multiple hw queues for v3 as experimental

> 

>   drivers/scsi/hisi_sas/hisi_sas.h       |  12 ++-

>   drivers/scsi/hisi_sas/hisi_sas_main.c  | 135 ++++++++++++-------------

>   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c | 110 +++++++++++++-------

>   drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 100 ++++++++++++++++--

>   4 files changed, 242 insertions(+), 115 deletions(-)

>