From: John Garry <john.garry@huawei.com>
To: Hannes Reinecke <hare@suse.de>,
JBottomley@odin.com, martin.petersen@oracle.com
Cc: linuxarm@huawei.com, zhangfei.gao@linaro.org,
xuwei5@hisilicon.com, john.garry2@mail.dcu.ie,
linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 5/6] hisi_sas: add hisi_sas_slave_configure()
Date: Thu, 18 Feb 2016 10:57:42 +0000 [thread overview]
Message-ID: <56C5A3A6.1090100@huawei.com> (raw)
In-Reply-To: <56C59D47.30500@suse.de>
On 18/02/2016 10:30, Hannes Reinecke wrote:
> On 02/18/2016 11:12 AM, John Garry wrote:
>> On 18/02/2016 07:40, Hannes Reinecke wrote:
> [ .. ]
>>> Well, the classical thing would be to associate each request tag
>>> with a SAS task; or, in your case, associate each slot index with a
>>> request tag.
>>> You probably would need to reserve some slots for TMFs, ie you'd
>>> need to decrease the resulting ->can_queue variable by that.
>>> But once you've done that you shouldn't hit any QUEUE_FULL issues,
>>> as the block layer will ensure that no tags will be reused while the
>>> command is in flight.
>>> Plus this is something you really need to be doing if you ever
>>> consider moving to scsi-mq ...
>>>
>>> Cheers,
>>>
>>> Hannes
>>>
>> Hi,
>>
>> So would you recommend this method under the assumption that the
>> can_queue value for the host is similar to the queue depth for the
>> device?
>>
> That depends.
> Typically the can_queue setting reflects the number of commands the
> _host_ can queue internally (due to hardware limitations etc).
> They do not necessarily reflect the queue depth for the device
> (unless you have a single device, of course).
> So if the host has a hardware limit on the number of commands it can
> queue, it should set the 'can_queue' variable to the appropriate
> number; a host-wide shared tag map is always assumed with recent
> kernels.
>
> The queue_depth of an individual device is controlled by the
> 'cmd_per_lun' setting, and of course capped by can_queue.
>
> But yes, I definitely recommend this method.
> Is saves one _so much_ time trying to figure out which command slot
> to use. Drawback is that you have to have some sort of fixed order
> on them slots to do an efficient lookup.
>
> Cheers,
>
> Hannes
>
I would like to make a point on cmd_per_lun before considering tagging
slots: For our host the can_queue is considerably greater than
cmd_per_lun (even though we initially set the same in the host template,
which would be incorrect). Regardless I find the host cmd_per_lun is
effectively ignored for the slave device queue depth as it is reset in
sas_slave_configure() to 256 [if this function is used and tagging
enabled]. So if we we choose a reasonable cmd_per_lun for our host, it
is ignored, right? Or am I missing something?
Thanks,
John
WARNING: multiple messages have this Message-ID (diff)
From: John Garry <john.garry@huawei.com>
To: Hannes Reinecke <hare@suse.de>, <JBottomley@odin.com>,
<martin.petersen@oracle.com>
Cc: <linuxarm@huawei.com>, <zhangfei.gao@linaro.org>,
<xuwei5@hisilicon.com>, <john.garry2@mail.dcu.ie>,
<linux-scsi@vger.kernel.org>, <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 5/6] hisi_sas: add hisi_sas_slave_configure()
Date: Thu, 18 Feb 2016 10:57:42 +0000 [thread overview]
Message-ID: <56C5A3A6.1090100@huawei.com> (raw)
In-Reply-To: <56C59D47.30500@suse.de>
On 18/02/2016 10:30, Hannes Reinecke wrote:
> On 02/18/2016 11:12 AM, John Garry wrote:
>> On 18/02/2016 07:40, Hannes Reinecke wrote:
> [ .. ]
>>> Well, the classical thing would be to associate each request tag
>>> with a SAS task; or, in your case, associate each slot index with a
>>> request tag.
>>> You probably would need to reserve some slots for TMFs, ie you'd
>>> need to decrease the resulting ->can_queue variable by that.
>>> But once you've done that you shouldn't hit any QUEUE_FULL issues,
>>> as the block layer will ensure that no tags will be reused while the
>>> command is in flight.
>>> Plus this is something you really need to be doing if you ever
>>> consider moving to scsi-mq ...
>>>
>>> Cheers,
>>>
>>> Hannes
>>>
>> Hi,
>>
>> So would you recommend this method under the assumption that the
>> can_queue value for the host is similar to the queue depth for the
>> device?
>>
> That depends.
> Typically the can_queue setting reflects the number of commands the
> _host_ can queue internally (due to hardware limitations etc).
> They do not necessarily reflect the queue depth for the device
> (unless you have a single device, of course).
> So if the host has a hardware limit on the number of commands it can
> queue, it should set the 'can_queue' variable to the appropriate
> number; a host-wide shared tag map is always assumed with recent
> kernels.
>
> The queue_depth of an individual device is controlled by the
> 'cmd_per_lun' setting, and of course capped by can_queue.
>
> But yes, I definitely recommend this method.
> Is saves one _so much_ time trying to figure out which command slot
> to use. Drawback is that you have to have some sort of fixed order
> on them slots to do an efficient lookup.
>
> Cheers,
>
> Hannes
>
I would like to make a point on cmd_per_lun before considering tagging
slots: For our host the can_queue is considerably greater than
cmd_per_lun (even though we initially set the same in the host template,
which would be incorrect). Regardless I find the host cmd_per_lun is
effectively ignored for the slave device queue depth as it is reset in
sas_slave_configure() to 256 [if this function is used and tagging
enabled]. So if we we choose a reasonable cmd_per_lun for our host, it
is ignored, right? Or am I missing something?
Thanks,
John
next prev parent reply other threads:[~2016-02-18 10:57 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-16 12:22 [PATCH 0/6] hisi_sas: add abort and retry feature John Garry
2016-02-16 12:22 ` John Garry
2016-02-16 12:22 ` [PATCH 1/6] hisi_sas: add TMF_RESP_FUNC_SUCC check John Garry
2016-02-16 12:22 ` John Garry
2016-02-16 15:20 ` Hannes Reinecke
2016-02-16 12:22 ` [PATCH 2/6] hisi_sas: add hisi_sas_slot_abort() John Garry
2016-02-16 12:22 ` John Garry
2016-02-16 15:22 ` Hannes Reinecke
2016-02-16 15:41 ` John Garry
2016-02-16 15:41 ` John Garry
2016-02-18 9:30 ` John Garry
2016-02-18 9:30 ` John Garry
2016-02-16 12:22 ` [PATCH 3/6] hisi_sas: use slot abort in v1 hw John Garry
2016-02-16 12:22 ` John Garry
2016-02-16 15:31 ` Hannes Reinecke
2016-02-16 15:31 ` Hannes Reinecke
2016-02-16 16:13 ` John Garry
2016-02-16 16:13 ` John Garry
2016-02-18 7:16 ` Hannes Reinecke
2016-02-18 9:52 ` John Garry
2016-02-18 9:52 ` John Garry
2016-02-16 12:22 ` [PATCH 4/6] hisi_sas: use slot abort in v2 hw John Garry
2016-02-16 12:22 ` John Garry
2016-02-16 15:32 ` Hannes Reinecke
2016-02-16 16:58 ` John Garry
2016-02-16 16:58 ` John Garry
2016-02-16 12:22 ` [PATCH 5/6] hisi_sas: add hisi_sas_slave_configure() John Garry
2016-02-16 12:22 ` John Garry
2016-02-16 15:33 ` Hannes Reinecke
2016-02-16 16:56 ` John Garry
2016-02-16 16:56 ` John Garry
2016-02-18 7:40 ` Hannes Reinecke
2016-02-18 10:12 ` John Garry
2016-02-18 10:12 ` John Garry
2016-02-18 10:30 ` Hannes Reinecke
2016-02-18 10:57 ` John Garry [this message]
2016-02-18 10:57 ` John Garry
2016-02-19 10:46 ` John Garry
2016-02-19 10:46 ` John Garry
2016-02-19 14:31 ` Hannes Reinecke
2016-02-19 14:31 ` Hannes Reinecke
2016-02-22 10:02 ` John Garry
2016-02-22 10:02 ` John Garry
2016-02-16 12:22 ` [PATCH 6/6] hisi_sas: update driver version to 1.3 John Garry
2016-02-16 12:22 ` John Garry
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=56C5A3A6.1090100@huawei.com \
--to=john.garry@huawei.com \
--cc=JBottomley@odin.com \
--cc=hare@suse.de \
--cc=john.garry2@mail.dcu.ie \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=linuxarm@huawei.com \
--cc=martin.petersen@oracle.com \
--cc=xuwei5@hisilicon.com \
--cc=zhangfei.gao@linaro.org \
/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.