All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@lst.de>
To: Jens Axboe <axboe@fb.com>
Cc: Mike Snitzer <snitzer@redhat.com>,
	linux-block@vger.kernel.org, linux-scsi@vger.kernel.org,
	dm-devel@redhat.com
Subject: RFC: split scsi passthrough fields out of struct request
Date: Tue, 10 Jan 2017 16:06:05 +0100	[thread overview]
Message-ID: <1484060780-15592-1-git-send-email-hch@lst.de> (raw)

Hi all,

this series splits the support for SCSI passthrough commands from the
main struct request used all over the block layer into a separate
scsi_request structure that drivers that want to support SCSI passthough
need to embedded as the first thing into their request-private data,
similar to how we handle NVMe passthrough commands.

To support this I've added support for that the private data after
request structure to the legacy request path instead, so that it can
be treated the same way as the blk-mq path.  Compare to the current
scsi_cmnd allocator that actually is a major simplification.

There is one major show-stopper for the series as-is:  Request-based
device mapper currently allocate the request structures in the stacking
driver without a knowledge of the queue it's going to be submitte on
for the legacy request path.  It managed to avoid that issue for the
blk-mq path, but that currently can't be used on legacy request devices
for reasons I don't fully understand.  We'll need to figure out how
sort this out, but maybe that's a good opportunity to drop one or two
of the three different dm-mpath I/O paths? :)

Note that the first two patches are 4.10 material and have already
been submitted independently.

             reply	other threads:[~2017-01-10 15:06 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-10 15:06 Christoph Hellwig [this message]
2017-01-10 15:06 ` [PATCH 01/15] virtio_blk: avoid DMA to stack for the sense buffer Christoph Hellwig
2017-01-11  8:26   ` Johannes Thumshirn
2017-01-11  8:26     ` Johannes Thumshirn
2017-01-11  8:43     ` Christoph Hellwig
2017-01-10 15:06 ` [PATCH 02/15] nvme-rdma: fix nvme_rdma_queue_is_ready Christoph Hellwig
2017-01-10 15:06 ` [PATCH 03/15] block: simplify blk_init_allocated_queue Christoph Hellwig
2017-01-10 15:06 ` [PATCH 04/15] block: allow specifying size for extra command data Christoph Hellwig
2017-01-10 15:06 ` [PATCH 05/15] dm: remove incomple BLOCK_PC support Christoph Hellwig
2017-01-12  1:09   ` Mike Snitzer
2017-01-12  8:00     ` Christoph Hellwig
2017-01-12 22:28       ` Mike Snitzer
2017-01-13  8:14         ` Christoph Hellwig
2017-01-13  8:14           ` Christoph Hellwig
2017-01-10 15:06 ` [PATCH 06/15] scsi_dh_rdac: switch to scsi_execute_req_flags() Christoph Hellwig
2017-01-10 15:06 ` [PATCH 07/15] scsi_dh_emc: " Christoph Hellwig
2017-01-10 15:06 ` [PATCH 08/15] scsi_dh_hp_sw: " Christoph Hellwig
2017-01-10 15:06 ` [PATCH 09/15] scsi: remove gfp_flags member in scsi_host_cmd_pool Christoph Hellwig
2017-01-10 15:06 ` [PATCH 10/15] scsi: respect unchecked_isa_dma for blk-mq Christoph Hellwig
2017-01-10 15:06 ` [PATCH 11/15] scsi: remove scsi_cmd_dma_pool Christoph Hellwig
2017-01-10 15:06 ` [PATCH 12/15] scsi: remove __scsi_alloc_queue Christoph Hellwig
2017-01-10 15:06 ` [PATCH 13/15] scsi: allocate scsi_cmnd structures as part of struct request Christoph Hellwig
2017-01-10 15:06 ` [PATCH 14/15] block/bsg: move queue creation into bsg_setup_queue Christoph Hellwig
2017-01-11  8:42   ` Johannes Thumshirn
2017-01-11  8:42     ` Johannes Thumshirn
2017-01-11  8:45     ` Christoph Hellwig
2017-01-11  8:56       ` Johannes Thumshirn
2017-01-11  8:56         ` Johannes Thumshirn
2017-01-11  8:59         ` Christoph Hellwig
2017-01-11  8:59       ` Hannes Reinecke
2017-01-11  8:59         ` Hannes Reinecke
2017-01-11  9:01         ` Christoph Hellwig
2017-01-11  9:37           ` Hannes Reinecke
2017-01-11  9:37             ` Hannes Reinecke
2017-01-11 22:08             ` Mike Snitzer
2017-01-11 22:01       ` Mike Snitzer
2017-01-12  7:57         ` Christoph Hellwig
2017-01-10 15:06 ` [PATCH 15/15] block: split scsi_request out of struct request Christoph Hellwig
2017-01-12  3:59   ` Jens Axboe
2017-01-12  3:59     ` Jens Axboe
2017-01-11 22:41 ` RFC: split scsi passthrough fields " Mike Snitzer
2017-01-12  7:59   ` Christoph Hellwig

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=1484060780-15592-1-git-send-email-hch@lst.de \
    --to=hch@lst.de \
    --cc=axboe@fb.com \
    --cc=dm-devel@redhat.com \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=snitzer@redhat.com \
    /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.