Linux-SCSI Archive on lore.kernel.org
 help / color / Atom feed
* Re: [PATCH RFC 00/24] scsi: enable reserved commands for LLDDs
       [not found] <20190529132901.27645-1-hare@suse.de>
@ 2019-08-23 13:26 ` John Garry
  2019-08-26 15:27   ` Hannes Reinecke
  0 siblings, 1 reply; 4+ messages in thread
From: John Garry @ 2019-08-23 13:26 UTC (permalink / raw)
  To: Hannes Reinecke, Martin K. Petersen
  Cc: Christoph Hellwig, James Bottomley, linux-scsi, Ming Lei

On 29/05/2019 14:28, Hannes Reinecke wrote:
> Hi all,
>
> quite some drivers use internal commands for various purposes, most
> commonly sending TMFs or querying the HBA status.
> While these commands use the same submission mechanism than normal
> I/O commands, they will not be counted as outstanding commands,
> requiring those drivers to implement their own mechanism to figure
> out outstanding commands.
> This patchset enables the use of reserved tags for the SCSI midlayer,
> enabling LLDDs to rely on the block layer for tracking outstanding
> commands.
> More importantly, it allows LLDD to request a valid tag from the block
> layer without having to implement some tracking mechanism within the
> driver. This removes quite some hacks which were required for some
> drivers (eg. fnic or snic).
>
> As usual, comments and reviews are welcome.
>

Hi Hannes,

I was wondering if you have any plans to progress this series?

I don't mind helping out...

Cheers,
John

> Hannes Reinecke (24):
>   block: disable elevator for reserved tags
>   scsi: add scsi_{get,put}_reserved_cmd()
>   scsi: add 'nr_reserved_cmds' field to the SCSI host template
>   csiostor: use reserved command for LUN reset
>   scsi: add scsi_cmd_from_priv()
>   virtio_scsi: use reserved commands for TMF
>   scsi: add host tagset busy iterator
>   fnic: use reserved commands
>   fnic: use scsi_host_tagset_busy_iter() to traverse commands
>   scsi: allocate separate queue for reserved commands
>   scsi: add scsi_host_get_reserved_cmd()
>   hpsa: move hpsa_hba_inquiry after scsi_add_host()
>   hpsa: use reserved commands
>   hpsa: use blk_mq_tagset_busy_iter() to traverse outstanding commands
>   hpsa: drop refcount field from CommandList
>   snic: use reserved commands
>   snic: use tagset iter for traversing commands
>   scsi: Implement scsi_is_reserved_cmd()
>   aacraid: move scsi_add_host()
>   aacraid: use private commands
>   aacraid: replace cmd_list with scsi_host_tagset_busy_iter()
>   aacraid: use scsi_host_tagset_busy_iter() to traverse outstanding
>     commands
>   dpt_i2o: drop cmd_list usage
>   scsi: drop scsi command list
>
>  block/blk-mq.c                    |  22 +-
>  drivers/scsi/aacraid/aachba.c     | 125 +++---
>  drivers/scsi/aacraid/aacraid.h    |   6 +-
>  drivers/scsi/aacraid/comminit.c   |  28 +-
>  drivers/scsi/aacraid/commsup.c    | 134 +++---
>  drivers/scsi/aacraid/linit.c      | 302 +++++++------
>  drivers/scsi/csiostor/csio_init.c |   3 +-
>  drivers/scsi/csiostor/csio_scsi.c |  48 +-
>  drivers/scsi/dpt_i2o.c            |  23 +-
>  drivers/scsi/fnic/fnic_scsi.c     | 916 ++++++++++++++++----------------------
>  drivers/scsi/hosts.c              |  27 ++
>  drivers/scsi/hpsa.c               | 310 ++++++-------
>  drivers/scsi/hpsa.h               |   1 -
>  drivers/scsi/hpsa_cmd.h           |   1 -
>  drivers/scsi/scsi.c               |   1 -
>  drivers/scsi/scsi_lib.c           |  69 +--
>  drivers/scsi/scsi_scan.c          |   1 -
>  drivers/scsi/snic/snic.h          |   2 +-
>  drivers/scsi/snic/snic_main.c     |   3 +
>  drivers/scsi/snic/snic_scsi.c     | 502 ++++++++++-----------
>  drivers/scsi/virtio_scsi.c        | 100 ++---
>  include/linux/blk-mq.h            |   2 +
>  include/scsi/scsi_cmnd.h          |  12 +-
>  include/scsi/scsi_device.h        |   1 -
>  include/scsi/scsi_host.h          |  17 +-
>  include/scsi/scsi_tcq.h           |  30 ++
>  26 files changed, 1311 insertions(+), 1375 deletions(-)
>



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH RFC 00/24] scsi: enable reserved commands for LLDDs
  2019-08-23 13:26 ` [PATCH RFC 00/24] scsi: enable reserved commands for LLDDs John Garry
@ 2019-08-26 15:27   ` Hannes Reinecke
  2019-09-02  8:47     ` John Garry
  0 siblings, 1 reply; 4+ messages in thread
From: Hannes Reinecke @ 2019-08-26 15:27 UTC (permalink / raw)
  To: John Garry, Martin K. Petersen
  Cc: Christoph Hellwig, James Bottomley, linux-scsi, Ming Lei

On 8/23/19 3:26 PM, John Garry wrote:
> On 29/05/2019 14:28, Hannes Reinecke wrote:
>> Hi all,
>>
>> quite some drivers use internal commands for various purposes, most
>> commonly sending TMFs or querying the HBA status.
>> While these commands use the same submission mechanism than normal
>> I/O commands, they will not be counted as outstanding commands,
>> requiring those drivers to implement their own mechanism to figure
>> out outstanding commands.
>> This patchset enables the use of reserved tags for the SCSI midlayer,
>> enabling LLDDs to rely on the block layer for tracking outstanding
>> commands.
>> More importantly, it allows LLDD to request a valid tag from the block
>> layer without having to implement some tracking mechanism within the
>> driver. This removes quite some hacks which were required for some
>> drivers (eg. fnic or snic).
>>
>> As usual, comments and reviews are welcome.
>>
> 
> Hi Hannes,
> 
> I was wondering if you have any plans to progress this series?
> 
> I don't mind helping out...
> 
Thanks for the reminder.
I'll need to re-evaluate this where we stand now with shared tags;
this patchset partially relies on them.
Will be sending an updated patchset.

Cheers,

Hannes
-- 
Dr. Hannes Reinecke		      Teamlead Storage & Networking
hare@suse.de			                  +49 911 74053 688
SUSE Software Solutions Germany GmbH, Maxfeldstr. 5, 90409 Nürnberg
HRB 247165 (AG München), GF: Felix Imendörffer

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH RFC 00/24] scsi: enable reserved commands for LLDDs
  2019-08-26 15:27   ` Hannes Reinecke
@ 2019-09-02  8:47     ` John Garry
  2019-09-09 15:11       ` Hannes Reinecke
  0 siblings, 1 reply; 4+ messages in thread
From: John Garry @ 2019-09-02  8:47 UTC (permalink / raw)
  To: Hannes Reinecke, Martin K. Petersen
  Cc: Christoph Hellwig, James Bottomley, linux-scsi, Ming Lei

On 26/08/2019 16:27, Hannes Reinecke wrote:
> On 8/23/19 3:26 PM, John Garry wrote:
>> On 29/05/2019 14:28, Hannes Reinecke wrote:
>>> Hi all,
>>>
>>> quite some drivers use internal commands for various purposes, most
>>> commonly sending TMFs or querying the HBA status.
>>> While these commands use the same submission mechanism than normal
>>> I/O commands, they will not be counted as outstanding commands,
>>> requiring those drivers to implement their own mechanism to figure
>>> out outstanding commands.
>>> This patchset enables the use of reserved tags for the SCSI midlayer,
>>> enabling LLDDs to rely on the block layer for tracking outstanding
>>> commands.
>>> More importantly, it allows LLDD to request a valid tag from the block
>>> layer without having to implement some tracking mechanism within the
>>> driver. This removes quite some hacks which were required for some
>>> drivers (eg. fnic or snic).
>>>
>>> As usual, comments and reviews are welcome.
>>>
>>
>> Hi Hannes,
>>
>> I was wondering if you have any plans to progress this series?
>>
>> I don't mind helping out...
>>
> Thanks for the reminder.

Hi Hannes,

> I'll need to re-evaluate this where we stand now with shared tags;

As Ming Lei mentioned in 
https://www.spinics.net/lists/linux-block/msg43779.html, the future for 
hostwide shared tags doesn't look bright. I would tend to agree.

> this patchset partially relies on them.

In which way? I didn't think/hope it did.

> Will be sending an updated patchset.

For me, the way I see forward is to upstream this series, in addition to 
Ming's, linked above.

As for LLDDs and the unique tag problem, I suggest that they use sbitmap 
to generate the tag internally if they want to expose multiple queues. 
 From our testing, using managed interrupts + sbitmap still far 
outperforms non-managed interrupts.

This approach would mean that we can still revisit hostwide shared tags 
or other some other approach in future.

Thanks,
John

>
> Cheers,
>
> Hannes
>



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH RFC 00/24] scsi: enable reserved commands for LLDDs
  2019-09-02  8:47     ` John Garry
@ 2019-09-09 15:11       ` Hannes Reinecke
  0 siblings, 0 replies; 4+ messages in thread
From: Hannes Reinecke @ 2019-09-09 15:11 UTC (permalink / raw)
  To: John Garry, Martin K. Petersen
  Cc: Christoph Hellwig, James Bottomley, linux-scsi, Ming Lei

On 9/2/19 10:47 AM, John Garry wrote:
> On 26/08/2019 16:27, Hannes Reinecke wrote:
>> On 8/23/19 3:26 PM, John Garry wrote:
>>> On 29/05/2019 14:28, Hannes Reinecke wrote:
>>>> Hi all,
>>>>
>>>> quite some drivers use internal commands for various purposes, most
>>>> commonly sending TMFs or querying the HBA status.
>>>> While these commands use the same submission mechanism than normal
>>>> I/O commands, they will not be counted as outstanding commands,
>>>> requiring those drivers to implement their own mechanism to figure
>>>> out outstanding commands.
>>>> This patchset enables the use of reserved tags for the SCSI midlayer,
>>>> enabling LLDDs to rely on the block layer for tracking outstanding
>>>> commands.
>>>> More importantly, it allows LLDD to request a valid tag from the block
>>>> layer without having to implement some tracking mechanism within the
>>>> driver. This removes quite some hacks which were required for some
>>>> drivers (eg. fnic or snic).
>>>>
>>>> As usual, comments and reviews are welcome.
>>>>
>>>
>>> Hi Hannes,
>>>
>>> I was wondering if you have any plans to progress this series?
>>>
>>> I don't mind helping out...
>>>
>> Thanks for the reminder.
> 
> Hi Hannes,
> 
>> I'll need to re-evaluate this where we stand now with shared tags;
> 
> As Ming Lei mentioned in
> https://www.spinics.net/lists/linux-block/msg43779.html, the future for
> hostwide shared tags doesn't look bright. I would tend to agree.
> 
>> this patchset partially relies on them.
> 
> In which way? I didn't think/hope it did.
> 
>> Will be sending an updated patchset.
> 
> For me, the way I see forward is to upstream this series, in addition to
> Ming's, linked above.
> 
> As for LLDDs and the unique tag problem, I suggest that they use sbitmap
> to generate the tag internally if they want to expose multiple queues.
> From our testing, using managed interrupts + sbitmap still far
> outperforms non-managed interrupts.
> 
> This approach would mean that we can still revisit hostwide shared tags
> or other some other approach in future.
> 
Hmm. True. Will be checking.

Cheers,

Hannes
-- 
Dr. Hannes Reinecke		      Teamlead Storage & Networking
hare@suse.de			                  +49 911 74053 688
SUSE Software Solutions Germany GmbH, Maxfeldstr. 5, 90409 Nürnberg
HRB 247165 (AG München), GF: Felix Imendörffer

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, back to index

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <20190529132901.27645-1-hare@suse.de>
2019-08-23 13:26 ` [PATCH RFC 00/24] scsi: enable reserved commands for LLDDs John Garry
2019-08-26 15:27   ` Hannes Reinecke
2019-09-02  8:47     ` John Garry
2019-09-09 15:11       ` Hannes Reinecke

Linux-SCSI Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-scsi/0 linux-scsi/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-scsi linux-scsi/ https://lore.kernel.org/linux-scsi \
		linux-scsi@vger.kernel.org linux-scsi@archiver.kernel.org
	public-inbox-index linux-scsi


Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-scsi


AGPL code for this site: git clone https://public-inbox.org/ public-inbox