All of lore.kernel.org
 help / color / mirror / Atom feed
From: <Don.Brace@microchip.com>
To: <john.garry@huawei.com>, <don.brace@microsemi.com>, <hare@suse.de>
Cc: <axboe@kernel.dk>, <jejb@linux.ibm.com>,
	<martin.petersen@oracle.com>, <kashyap.desai@broadcom.com>,
	<sumit.saxena@broadcom.com>, <ming.lei@redhat.com>,
	<bvanassche@acm.org>, <hare@suse.com>, <hch@lst.de>,
	<shivasharan.srikanteshwara@broadcom.com>,
	<linux-block@vger.kernel.org>, <linux-scsi@vger.kernel.org>,
	<esc.storagedev@microsemi.com>, <chenxiang66@hisilicon.com>,
	<megaraidlinux.pdl@broadcom.com>
Subject: RE: [PATCH RFC v7 12/12] hpsa: enable host_tagset and switch to MQ
Date: Thu, 16 Jul 2020 16:14:58 +0000	[thread overview]
Message-ID: <SN6PR11MB28485EA5F952502968AF8970E17F0@SN6PR11MB2848.namprd11.prod.outlook.com> (raw)
In-Reply-To: <939891db-a584-1ff7-d6a0-3857e4257d3e@huawei.com>

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

EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe

On 10/06/2020 18:29, John Garry wrote:
> From: Hannes Reinecke <hare@suse.de>
>
> The smart array HBAs can steer interrupt completion, so this patch 
> switches the implementation to use multiqueue and enables 
> 'host_tagset' as the HBA has a shared host-wide tagset.
>

>>Hi Don,

>>I am preparing the next iteration of this series, and >>we're getting close to dropping the RFC tags. The >>series has grown a bit, and I am not sure what to do >>with hpsa support.

>>The latest versions of this series have not been tested for hpsa, AFAIK.
>>Can you let me know if you can test and review this >>patch? Or someone else let me know it's tested (Hannes?)

Thanks

Yes, I'll run my testing soon.
Don

> Signed-off-by: Hannes Reinecke <hare@suse.de>
> ---
>   drivers/scsi/hpsa.c | 44 +++++++-------------------------------------
>   drivers/scsi/hpsa.h |  1 -
>   2 files changed, 7 insertions(+), 38 deletions(-)
>
> diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c index 
> 1e9302e99d05..f807f9bdae85 100644
> --- a/drivers/scsi/hpsa.c
> +++ b/drivers/scsi/hpsa.c
> @@ -980,6 +980,7 @@ static struct scsi_host_template hpsa_driver_template = {
>       .shost_attrs = hpsa_shost_attrs,
>       .max_sectors = 2048,
>       .no_write_same = 1,
> +     .host_tagset = 1,
>   };
>
>   static inline u32 next_command(struct ctlr_info *h, u8 q) @@ 
> -1144,12 +1145,14 @@ static void dial_up_lockup_detection_on_fw_flash_complete(struct ctlr_info *h,
>   static void __enqueue_cmd_and_start_io(struct ctlr_info *h,
>       struct CommandList *c, int reply_queue)
>   {
> +     u32 blk_tag = blk_mq_unique_tag(c->scsi_cmd->request);
> +
>       dial_down_lockup_detection_during_fw_flash(h, c);
>       atomic_inc(&h->commands_outstanding);
>       if (c->device)
>               atomic_inc(&c->device->commands_outstanding);
>
> -     reply_queue = h->reply_map[raw_smp_processor_id()];
> +     reply_queue = blk_mq_unique_tag_to_hwq(blk_tag);
>       switch (c->cmd_type) {
>       case CMD_IOACCEL1:
>               set_ioaccel1_performant_mode(h, c, reply_queue); @@ 
> -5653,8 +5656,6 @@ static int hpsa_scsi_queue_command(struct Scsi_Host *sh, struct scsi_cmnd *cmd)
>       /* Get the ptr to our adapter structure out of cmd->host. */
>       h = sdev_to_hba(cmd->device);
>
> -     BUG_ON(cmd->request->tag < 0);
> -
>       dev = cmd->device->hostdata;
>       if (!dev) {
>               cmd->result = DID_NO_CONNECT << 16; @@ -5830,7 +5831,7 
> @@ static int hpsa_scsi_host_alloc(struct ctlr_info *h)
>       sh->hostdata[0] = (unsigned long) h;
>       sh->irq = pci_irq_vector(h->pdev, 0);
>       sh->unique_id = sh->irq;
> -
> +     sh->nr_hw_queues = h->msix_vectors > 0 ? h->msix_vectors : 1;
>       h->scsi_host = sh;
>       return 0;
>   }
> @@ -5856,7 +5857,8 @@ static int hpsa_scsi_add_host(struct ctlr_info *h)
>    */
>   static int hpsa_get_cmd_index(struct scsi_cmnd *scmd)
>   {
> -     int idx = scmd->request->tag;
> +     u32 blk_tag = blk_mq_unique_tag(scmd->request);
> +     int idx = blk_mq_unique_tag_to_tag(blk_tag);
>
>       if (idx < 0)
>               return idx;
> @@ -7456,26 +7458,6 @@ static void hpsa_disable_interrupt_mode(struct ctlr_info *h)
>       h->msix_vectors = 0;
>   }
>
> -static void hpsa_setup_reply_map(struct ctlr_info *h) -{
> -     const struct cpumask *mask;
> -     unsigned int queue, cpu;
> -
> -     for (queue = 0; queue < h->msix_vectors; queue++) {
> -             mask = pci_irq_get_affinity(h->pdev, queue);
> -             if (!mask)
> -                     goto fallback;
> -
> -             for_each_cpu(cpu, mask)
> -                     h->reply_map[cpu] = queue;
> -     }
> -     return;
> -
> -fallback:
> -     for_each_possible_cpu(cpu)
> -             h->reply_map[cpu] = 0;
> -}
> -
>   /* If MSI/MSI-X is supported by the kernel we will try to enable it on
>    * controllers that are capable. If not, we use legacy INTx mode.
>    */
> @@ -7872,9 +7854,6 @@ static int hpsa_pci_init(struct ctlr_info *h)
>       if (err)
>               goto clean1;
>
> -     /* setup mapping between CPU and reply queue */
> -     hpsa_setup_reply_map(h);
> -
>       err = hpsa_pci_find_memory_BAR(h->pdev, &h->paddr);
>       if (err)
>               goto clean2;    /* intmode+region, pci */
> @@ -8613,7 +8592,6 @@ static struct workqueue_struct 
> *hpsa_create_controller_wq(struct ctlr_info *h,
>
>   static void hpda_free_ctlr_info(struct ctlr_info *h)
>   {
> -     kfree(h->reply_map);
>       kfree(h);
>   }
>
> @@ -8622,14 +8600,6 @@ static struct ctlr_info *hpda_alloc_ctlr_info(void)
>       struct ctlr_info *h;
>
>       h = kzalloc(sizeof(*h), GFP_KERNEL);
> -     if (!h)
> -             return NULL;
> -
> -     h->reply_map = kcalloc(nr_cpu_ids, sizeof(*h->reply_map), GFP_KERNEL);
> -     if (!h->reply_map) {
> -             kfree(h);
> -             return NULL;
> -     }
>       return h;
>   }
>
> diff --git a/drivers/scsi/hpsa.h b/drivers/scsi/hpsa.h index 
> f8c88fc7b80a..ea4a609e3eb7 100644
> --- a/drivers/scsi/hpsa.h
> +++ b/drivers/scsi/hpsa.h
> @@ -161,7 +161,6 @@ struct bmic_controller_parameters {
>   #pragma pack()
>
>   struct ctlr_info {
> -     unsigned int *reply_map;
>       int     ctlr;
>       char    devname[8];
>       char    *product_name;
>


  parent reply	other threads:[~2020-07-16 16:15 UTC|newest]

Thread overview: 123+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-10 17:29 [PATCH RFC v7 00/12] blk-mq/scsi: Provide hostwide shared tags for SCSI HBAs John Garry
2020-06-10 17:29 ` [PATCH RFC v7 01/12] blk-mq: rename BLK_MQ_F_TAG_SHARED as BLK_MQ_F_TAG_QUEUE_SHARED John Garry
2020-06-10 17:29 ` [PATCH RFC v7 02/12] blk-mq: rename blk_mq_update_tag_set_depth() John Garry
2020-06-11  2:57   ` Ming Lei
2020-06-11  8:26     ` John Garry
2020-06-23 11:25       ` John Garry
2020-06-23 14:23         ` Hannes Reinecke
2020-06-24  8:13           ` Kashyap Desai
2020-06-29 16:18             ` John Garry
2020-08-10 16:51           ` Kashyap Desai
2020-08-11  8:01             ` John Garry
2020-08-11 16:34               ` Kashyap Desai
2020-06-10 17:29 ` [PATCH RFC v7 03/12] blk-mq: Use pointers for blk_mq_tags bitmap tags John Garry
2020-06-10 17:29 ` [PATCH RFC v7 04/12] blk-mq: Facilitate a shared sbitmap per tagset John Garry
2020-06-11  3:37   ` Ming Lei
2020-06-11 10:09     ` John Garry
2020-06-10 17:29 ` [PATCH RFC v7 05/12] blk-mq: Record nr_active_requests per queue for when using shared sbitmap John Garry
2020-06-11  4:04   ` Ming Lei
2020-06-11 10:22     ` John Garry
2020-06-10 17:29 ` [PATCH RFC v7 06/12] blk-mq: Record active_queues_shared_sbitmap per tag_set " John Garry
2020-06-11 13:16   ` Hannes Reinecke
2020-06-11 14:22     ` John Garry
2020-06-10 17:29 ` [PATCH RFC v7 07/12] blk-mq: Add support in hctx_tags_bitmap_show() for a " John Garry
2020-06-11 13:19   ` Hannes Reinecke
2020-06-11 14:33     ` John Garry
2020-06-12  6:06       ` Hannes Reinecke
2020-06-29 15:32         ` About sbitmap_bitmap_show() and cleared bits (was Re: [PATCH RFC v7 07/12] blk-mq: Add support in hctx_tags_bitmap_show() for a shared sbitmap) John Garry
2020-06-30  6:33           ` Hannes Reinecke
2020-06-30  7:30             ` John Garry
2020-06-30 11:36               ` John Garry
2020-06-30 14:55           ` Bart Van Assche
2020-07-13  9:41         ` [PATCH RFC v7 07/12] blk-mq: Add support in hctx_tags_bitmap_show() for a shared sbitmap John Garry
2020-07-13 12:20           ` Hannes Reinecke
2020-06-10 17:29 ` [PATCH RFC v7 08/12] scsi: Add template flag 'host_tagset' John Garry
2020-06-10 17:29 ` [PATCH RFC v7 09/12] scsi: hisi_sas: Switch v3 hw to MQ John Garry
2020-06-10 17:29 ` [PATCH RFC v7 10/12] megaraid_sas: switch fusion adapters " John Garry
2020-07-02 10:23   ` Kashyap Desai
2020-07-06  8:23     ` John Garry
2020-07-06  8:45       ` Hannes Reinecke
2020-07-06  9:26         ` John Garry
2020-07-06  9:40           ` Hannes Reinecke
2020-07-06 19:19       ` Kashyap Desai
2020-07-07  7:58         ` John Garry
2020-07-07 14:45           ` Kashyap Desai
2020-07-07 16:17             ` John Garry
2020-07-09 19:01               ` Kashyap Desai
2020-07-10  8:10                 ` John Garry
2020-07-13  7:55                   ` Kashyap Desai
2020-07-13  8:42                     ` John Garry
2020-07-19 19:07                       ` Kashyap Desai
2020-07-20  7:23                       ` Kashyap Desai
2020-07-20  9:18                         ` John Garry
2020-07-21  1:13                         ` Ming Lei
2020-07-21  6:53                           ` Kashyap Desai
2020-07-22  4:12                             ` Ming Lei
2020-07-22  5:30                               ` Kashyap Desai
2020-07-22  8:04                                 ` Ming Lei
2020-07-22  9:32                                   ` John Garry
2020-07-23 14:07                                     ` Ming Lei
2020-07-23 17:29                                       ` John Garry
2020-07-24  2:47                                         ` Ming Lei
2020-07-28  7:54                                           ` John Garry
2020-07-28  8:45                                             ` Ming Lei
2020-07-29  5:25                                               ` Kashyap Desai
2020-07-29 15:36                                                 ` Ming Lei
2020-07-29 18:31                                                   ` Kashyap Desai
2020-08-04  8:36                                                     ` Ming Lei
2020-08-04  9:27                                                       ` Kashyap Desai
2020-08-05  8:40                                                         ` Ming Lei
2020-08-06 10:25                                                           ` Kashyap Desai
2020-08-06 13:38                                                             ` Ming Lei
2020-08-06 14:37                                                               ` Kashyap Desai
2020-08-06 15:29                                                                 ` Ming Lei
2020-08-08 19:05                                                                   ` Kashyap Desai
2020-08-09  2:16                                                                     ` Ming Lei
2020-08-10 16:38                                                                       ` Kashyap Desai
2020-08-11  8:09                                                                         ` John Garry
2020-08-04 17:00                                               ` John Garry
2020-08-05  2:56                                                 ` Ming Lei
2020-07-28  8:01                                   ` Kashyap Desai
2020-07-08 11:31         ` John Garry
2020-06-10 17:29 ` [PATCH RFC v7 11/12] smartpqi: enable host tagset John Garry
2020-07-14 13:16   ` John Garry
2020-07-14 13:31     ` John Garry
2020-07-14 18:16       ` Don.Brace
2020-07-15  7:28         ` John Garry
2020-07-14 14:02     ` Hannes Reinecke
2020-08-18  8:33       ` John Garry
2020-06-10 17:29 ` [PATCH RFC v7 12/12] hpsa: enable host_tagset and switch to MQ John Garry
2020-07-14  7:37   ` John Garry
2020-07-14  7:41     ` Hannes Reinecke
2020-07-14  7:52       ` John Garry
2020-07-14  8:06         ` Ming Lei
2020-07-14  9:53           ` John Garry
2020-07-14 10:14             ` Ming Lei
2020-07-14 10:43               ` Hannes Reinecke
2020-07-14 10:19             ` Hannes Reinecke
2020-07-14 10:35               ` John Garry
2020-07-14 10:44               ` Ming Lei
2020-07-14 10:52                 ` John Garry
2020-07-14 12:04                   ` Ming Lei
2020-08-03 20:39         ` Don.Brace
2020-08-04  9:27           ` John Garry
2020-08-04 15:18             ` Don.Brace
2020-08-05 11:21               ` John Garry
2020-08-14 21:04                 ` Don.Brace
2020-08-17  8:00                   ` John Garry
2020-08-17 18:39                     ` Don.Brace
2020-08-18  7:14                       ` Hannes Reinecke
2020-07-16 16:14     ` Don.Brace [this message]
2020-07-16 19:45     ` Don.Brace
2020-07-17 10:11       ` John Garry
2020-06-11  3:07 ` [PATCH RFC v7 00/12] blk-mq/scsi: Provide hostwide shared tags for SCSI HBAs Ming Lei
2020-06-11  9:35   ` John Garry
2020-06-12 18:47     ` Kashyap Desai
2020-06-15  2:13       ` Ming Lei
2020-06-15  6:57         ` Kashyap Desai
2020-06-16  1:00           ` Ming Lei
2020-06-17 11:26             ` Kashyap Desai
2020-06-22  6:24               ` Hannes Reinecke
2020-06-23  0:55                 ` Ming Lei
2020-06-23 11:50                   ` Kashyap Desai
2020-06-23 12:11                   ` Kashyap Desai

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=SN6PR11MB28485EA5F952502968AF8970E17F0@SN6PR11MB2848.namprd11.prod.outlook.com \
    --to=don.brace@microchip.com \
    --cc=axboe@kernel.dk \
    --cc=bvanassche@acm.org \
    --cc=chenxiang66@hisilicon.com \
    --cc=don.brace@microsemi.com \
    --cc=esc.storagedev@microsemi.com \
    --cc=hare@suse.com \
    --cc=hare@suse.de \
    --cc=hch@lst.de \
    --cc=jejb@linux.ibm.com \
    --cc=john.garry@huawei.com \
    --cc=kashyap.desai@broadcom.com \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=martin.petersen@oracle.com \
    --cc=megaraidlinux.pdl@broadcom.com \
    --cc=ming.lei@redhat.com \
    --cc=shivasharan.srikanteshwara@broadcom.com \
    --cc=sumit.saxena@broadcom.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.