Re: [PATCH RFC v7 12/12] hpsa: enable host_tagset and switch to MQ

Ming Lei
2020-07-14T10:14:57Z

On Tue, Jul 14, 2020 at 10:53:32AM +0100, John Garry wrote:
> On 14/07/2020 09:06, Ming Lei wrote:
> > > v7 is here:
> > >
> > > https://github.com/hisilicon/kernel-dev/commits/private-topic-blk-mq-shared-tags-rfc-v7
> > >
> > > So that should be good to test with for now.
> > >
> > > And I was going to ask this same question about smartpqi, so can you please
> > > let me know about this one?
>
> Hi Ming,
>
> > smartpqi is real MQ HBA, do you need any change wrt. shared tags?
>
> Is it really?

Yes, it is.

pqi_register_scsi():
shost->nr_hw_queues = ctrl_info->num_queue_groups;

pqi_enable_msix_interrupts():
num_vectors_enabled = pci_alloc_irq_vectors(ctrl_info->pci_dev,
PQI_MIN_MSIX_VECTORS, ctrl_info->num_queue_groups,
PCI_IRQ_MSIX | PCI_IRQ_AFFINITY);

>
> As I see, today it maintains a single tagset per HBA. So Hannes' change in

No, each hw queue has one independent tagset for smartpqi.

> this series seems ok. However, I do worry that mainline code may be wrong,
> as block layer may send can_queue * nr_hw_queues requests, when it seems the
> HBA can only handle can_queue requests.

I have one machine in which all system are installed on smartpqi disks,
and I almost work on the system everyday, so far so good with this real
MQ style.

Can you explain a bit why you worry the mainline code may be wrong?

Thanks,
Ming