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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 7/14/20 12:14 PM, Ming Lei wrote:
> 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.
> 
Has it really?

The code has this:

static struct pqi_io_request *pqi_alloc_io_request(
	struct pqi_ctrl_info *ctrl_info)
{
	struct pqi_io_request *io_request;
	u16 i = ctrl_info->next_io_request_slot;	/* benignly racy */

	while (1) {
		io_request = &ctrl_info->io_request_pool[i];
		if (atomic_inc_return(&io_request->refcount) == 1)
			break;
		atomic_dec(&io_request->refcount);
		i = (i + 1) % ctrl_info->max_io_slots;
	}


which means that at least the driver assumes a host-wide tagset.
Looking at the code the HW _should_ support per-queue tagsets (it's PQI,
after all), but this doesn't seem to be carried over for the entire
driver; possibly due to legacy concerns.
Don should be able to shed some light here.

Meanwhile we have to assume that the _driver_ uses a per-host tagset; we
might be able to convert it to a per-queue tagset, but that looks like a
major update of the driver itself.

Cheers,

Hannes
-- 
Dr. Hannes Reinecke		           Kernel Storage Architect
hare@xxxxxxx			                  +49 911 74053 688
SUSE Software Solutions Germany GmbH, Maxfeldstr. 5, 90409 Nürnberg
HRB 36809 (AG Nürnberg), GF: Felix Imendörffer



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux