linux-scsi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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

  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).