All of lore.kernel.org
 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 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.