From: Jens Axboe <axboe@fb.com>
To: Christoph Hellwig <hch@lst.de>, linux-scsi@vger.kernel.org
Cc: James Bottomley <James.Bottomley@HansenPartnership.com>,
Robert Elliott <elliott@hp.com>, Hannes Reinecke <hare@suse.de>,
"Martin K. Petersen" <martin.petersen@oracle.com>,
Bart van Assche <bvanassche@acm.org>,
Kashyap Desai <kashyap.desai@avagotech.com>,
Sreekanth Reddy <sreekanth.reddy@avagotech.com>,
Mike Christie <michaelc@cs.wisc.edu>,
Guennadi Liakhovetski <g.liakhovetski@gmx.de>,
usb-storage@lists.one-eyed-alien.net
Subject: Re: tag handling refactor V2
Date: Mon, 10 Nov 2014 15:28:50 -0700 [thread overview]
Message-ID: <54613C22.8050907@fb.com> (raw)
In-Reply-To: <1415634990-3023-1-git-send-email-hch@lst.de>
On 2014-11-10 08:56, Christoph Hellwig wrote:
> The current SCSI handling suffers from large amounts of duplicate code, and
> a general confusion of multiple concepts of tagging.
>
> This series tries to reduce the amount of code, and introduce two separate
> clear concepts of tagging:
>
> a) a driver can request block-level tagging to always have a valid index
> assigned to cmd->request->tag by the block layer. This is already
> automatically done for the blk-mq case, but this gives the optional
> legacy request taggign similar semantics.
> b) the concept of a SCSI "tagged command" is now entirely separate from
> providing an actual tag, and always provided in a flag in the SCSI
> command. The driver does not need to opt-in this information, but
> it doesn't have to use it.
>
> While this series removes 750 lines of code and provides a much cleaner driver
> API it also opens up new questions:
>
> - how is the change_queue_type API supposed to be used for most drivers? It
> only changes the tag type from none to simple or back, but except for the
> special implementation in the 53c700 driver doesn't change the queue depth,
> which might cause it to issue multiple non-tagged command. Fortunately
> most drivers never look at this information, but then again changing the
> queue type is useless to start with.
> - for those drivers looking at the command tagged information we'd need
> to quiesce the LUN. No driver but the 53c700 driver does that, and the
> 53c700 does it at a target-level, which despite a comment claiming it's
> needed doesn't seem to make sense given the code. If we can make sure
> to quience all LUNs we could avoid the per-command flag for tagged commands
> and always look at the scsi_device flag.
> - similarly, do we need any synchronization when answering a tag message reject?
> - queue ramp down may drop to untagged mode, but queue ramp up never reverseѕ
> that.
> - the ->tagged_supported and ->simple_tags flags are bit-fields without clear
> locking protection. We probably want to move these and similar fields to
> a proper atomic bit flags member.
> - should the MSG_*_TAG fields move to the SPI transport class? That's where
> they are defined, and besides SPI drivers they are only (ab)used by the
> target code now.
>
> Changes since V1:
> - small fixes for various review comments
Looks good to me, nice cleanup and the diffstat is excellent :-)
--
Jens Axboe
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2014-11-10 22:29 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-10 15:56 tag handling refactor V2 Christoph Hellwig
2014-11-10 15:56 ` [PATCH 01/11] scsi: provide a generic change_queue_type method Christoph Hellwig
2014-11-10 15:56 ` [PATCH 02/11] scsi: add new scsi-command flag for tagged commands Christoph Hellwig
2014-11-10 15:56 ` [PATCH 03/11] scsi: remove ordered_tags scsi_device field Christoph Hellwig
2014-11-11 15:37 ` Hannes Reinecke
2014-11-10 15:56 ` [PATCH 04/11] scsi: remove ordered_tag host template field Christoph Hellwig
2014-11-10 15:56 ` [PATCH 05/11] scsi: remove abuses of scsi_populate_tag Christoph Hellwig
2014-11-11 15:39 ` Hannes Reinecke
2014-11-10 15:56 ` [PATCH 06/11] mptfusion: don't change queue type in ->change_queue_depth Christoph Hellwig
2014-11-10 15:56 ` [PATCH 07/11] scsi: remove use_blk_tcq Scsi_Host field Christoph Hellwig
2014-11-10 15:56 ` [PATCH 08/11] scsi: always assign block layer tags if enabled Christoph Hellwig
2014-11-10 15:56 ` [PATCH 09/11] scsi: don't set tagging state from scsi_adjust_queue_depth Christoph Hellwig
2014-11-11 15:41 ` Hannes Reinecke
2014-11-10 15:56 ` [PATCH 10/11] scsi: don't force tagged_supported in drivers Christoph Hellwig
2014-11-11 15:42 ` Hannes Reinecke
2014-11-10 15:56 ` [PATCH 11/11] ufs: remove spurious scsi_set_tag_type call Christoph Hellwig
2014-11-11 15:42 ` Hannes Reinecke
2014-11-10 18:06 ` tag handling refactor V2 Mike Christie
2014-11-10 22:28 ` Jens Axboe [this message]
2014-11-12 17:41 ` making the queue_type attribute read only, was: " Christoph Hellwig
2014-11-13 0:33 ` Elliott, Robert (Server Storage)
2014-11-13 11:28 ` Christoph Hellwig
2014-11-13 1:15 ` James Bottomley
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=54613C22.8050907@fb.com \
--to=axboe@fb.com \
--cc=James.Bottomley@HansenPartnership.com \
--cc=bvanassche@acm.org \
--cc=elliott@hp.com \
--cc=g.liakhovetski@gmx.de \
--cc=hare@suse.de \
--cc=hch@lst.de \
--cc=kashyap.desai@avagotech.com \
--cc=linux-scsi@vger.kernel.org \
--cc=martin.petersen@oracle.com \
--cc=michaelc@cs.wisc.edu \
--cc=sreekanth.reddy@avagotech.com \
--cc=usb-storage@lists.one-eyed-alien.net \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).