linux-block.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Hannes Reinecke <hare@suse.de>
To: Logan Gunthorpe <logang@deltatee.com>,
	linux-kernel@vger.kernel.org, linux-nvme@lists.infradead.org,
	linux-block@vger.kernel.org, linux-fsdevel@vger.kernel.org
Cc: Christoph Hellwig <hch@lst.de>, Sagi Grimberg <sagi@grimberg.me>,
	Keith Busch <kbusch@kernel.org>, Jens Axboe <axboe@fb.com>,
	Chaitanya Kulkarni <Chaitanya.Kulkarni@wdc.com>,
	Max Gurtovoy <maxg@mellanox.com>,
	Stephen Bates <sbates@raithlin.com>
Subject: Re: [PATCH v6 00/16] nvmet: add target passthru commands support
Date: Fri, 26 Jul 2019 08:23:45 +0200	[thread overview]
Message-ID: <1f202de3-1122-f4a3-debd-0d169f545047@suse.de> (raw)
In-Reply-To: <20190725172335.6825-1-logang@deltatee.com>

Hi Logan,

On 7/25/19 7:23 PM, Logan Gunthorpe wrote:
> Hi,
> 
> Chaitainya has asked us to take on these patches as we have an
> interest in getting them into upstream. To that end, we've done
> a large amount of testing, bug fixes and cleanup.
> 
> Passthru support for nvmet allows users to export an entire
> NVMe controller through NVMe-oF. When exported in this way (as opposed
> to exporting each namespace as a block device), all the NVMe commands
> are passed to the given controller unmodified, including most admin
> commands and Vendor Unique Commands (VUCs). A passthru target will
> expose all namespaces for a given device to the remote host.
> 
In general I'm very much in favour of this, yet there are some issues
which I'm not quite clear about.

> There are three major non-bugfix changes that we've done to the series:
> 
> 1) Instead of using a seperate special passthru subsystem in
>    configfs simply add a passthru directory that's analogous to
>    the existing namespace directories. The directories have
>    very similar attributes to namespaces but are mutually exclusive.
>    If a user enables a namespaces, they can't then enable
>    passthru controller and vice versa. This simplifies the code
>    required to implement passthru configfs and IMO creates a much
>    clearer and uniform interface.
> 
How do you handle subsystem naming?
If you enable the 'passthru' device, the (nvmet) subsystem (and its
name) is already created. Yet the passthru device will have its own
internal subsystem naming, so if you're not extra careful you'll end up
with a nvmet subsystem which doesn't have any relationship with the
passthru subsystem, making addressing etc ... tricky.
Any thoughts about that?

Similarly: how do you propose to handle multipath devices?
Any NVMe with several paths will be enabling NVMe multipathing
automatically, presenting you with a single multipathed namespace.
How will these devices be treated?
Will the multipathed namespace be used for passthru?

Cheers,

Hannes
-- 
Dr. Hannes Reinecke		   Teamlead Storage & Networking
hare@suse.de			               +49 911 74053 688
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: Felix Imendörffer, Mary Higgins, Sri Rasiah
HRB 21284 (AG Nürnberg)

  parent reply	other threads:[~2019-07-26  6:23 UTC|newest]

Thread overview: 61+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-07-25 17:23 [PATCH v6 00/16] nvmet: add target passthru commands support Logan Gunthorpe
2019-07-25 17:23 ` [PATCH v6 01/16] chardev: factor out cdev_lookup() helper Logan Gunthorpe
2019-07-25 17:23 ` [PATCH v6 02/16] chardev: introduce cdev_get_by_path() Logan Gunthorpe
2019-07-25 17:40   ` Greg Kroah-Hartman
2019-07-25 17:53     ` Logan Gunthorpe
2019-07-25 17:58       ` Matthew Wilcox
2019-07-25 18:08         ` Logan Gunthorpe
2019-07-25 18:08       ` Greg Kroah-Hartman
2019-07-25 18:14         ` Logan Gunthorpe
2019-07-25 18:27           ` Greg Kroah-Hartman
2019-07-25 18:36             ` Logan Gunthorpe
2019-07-25 19:02               ` Sagi Grimberg
2019-07-25 19:34                 ` Greg Kroah-Hartman
2019-07-25 19:37                   ` Sagi Grimberg
2019-07-25 19:43                     ` Greg Kroah-Hartman
2019-07-25 19:45                       ` Sagi Grimberg
2019-07-25 19:43                     ` Sagi Grimberg
2019-07-25 19:41                   ` Logan Gunthorpe
2019-07-25 19:00             ` Matthew Wilcox
2019-07-25 19:05               ` Sagi Grimberg
2019-07-25 19:11                 ` Matthew Wilcox
2019-07-25 19:24                   ` Logan Gunthorpe
2019-07-25 19:26                     ` Matthew Wilcox
2019-07-25 19:31                       ` Logan Gunthorpe
2019-07-25 23:55                     ` Al Viro
2019-07-26  4:29                       ` Sagi Grimberg
2019-07-26  7:13                         ` Greg Kroah-Hartman
2019-07-26 15:46                         ` Logan Gunthorpe
2019-07-25 19:31                   ` Sagi Grimberg
2019-07-25 18:10       ` Greg Kroah-Hartman
2019-07-25 18:16         ` Logan Gunthorpe
2019-07-25 17:23 ` [PATCH v6 03/16] chardev: export cdev_put() Logan Gunthorpe
2019-07-25 17:23 ` [PATCH v6 04/16] nvme-core: introduce nvme_get_by_path() Logan Gunthorpe
2019-07-25 17:50   ` Matthew Wilcox
2019-07-25 17:54     ` Logan Gunthorpe
2019-07-25 19:58       ` Keith Busch
2019-07-25 20:12         ` Sagi Grimberg
2019-07-25 20:28         ` Logan Gunthorpe
2019-07-25 20:31           ` Keith Busch
2019-07-25 20:37             ` Logan Gunthorpe
2019-07-25 17:23 ` [PATCH v6 05/16] nvme-core: export existing ctrl and ns interfaces Logan Gunthorpe
2019-07-25 17:23 ` [PATCH v6 06/16] nvmet: add return value to nvmet_add_async_event() Logan Gunthorpe
2019-07-25 17:23 ` [PATCH v6 07/16] nvmet: make nvmet_copy_ns_identifier() non-static Logan Gunthorpe
2019-07-25 17:23 ` [PATCH v6 08/16] nvmet-passthru: update KConfig with config passthru option Logan Gunthorpe
2019-07-25 17:23 ` [PATCH v6 09/16] nvmet-passthru: add passthru code to process commands Logan Gunthorpe
2019-07-25 17:23 ` [PATCH v6 10/16] nvmet-passthru: add enable/disable helpers Logan Gunthorpe
2019-07-25 17:23 ` [PATCH v6 11/16] nvmet-core: allow one host per passthru-ctrl Logan Gunthorpe
2019-07-25 17:23 ` [PATCH v6 12/16] nvmet-core: don't check the data len for pt-ctrl Logan Gunthorpe
2019-07-25 17:23 ` [PATCH v6 13/16] nvmet-configfs: introduce passthru configfs interface Logan Gunthorpe
2019-07-25 17:23 ` [PATCH v6 14/16] block: don't check blk_rq_is_passthrough() in blk_do_io_stat() Logan Gunthorpe
2019-07-25 17:23 ` [PATCH v6 15/16] block: call blk_account_io_start() in blk_execute_rq_nowait() Logan Gunthorpe
2019-07-25 17:23 ` [PATCH v6 16/16] nvmet-passthru: support block accounting Logan Gunthorpe
2019-07-26  6:23 ` Hannes Reinecke [this message]
2019-07-26 17:07   ` [PATCH v6 00/16] nvmet: add target passthru commands support Logan Gunthorpe
2019-07-26 22:21     ` Sagi Grimberg
2019-07-26 22:37       ` Logan Gunthorpe
2019-07-26 23:13         ` Sagi Grimberg
2019-07-27  0:09           ` Logan Gunthorpe
2019-07-27  0:50             ` Stephen  Bates
2019-07-29 16:15               ` Sagi Grimberg
2019-07-29 16:17                 ` Logan Gunthorpe

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=1f202de3-1122-f4a3-debd-0d169f545047@suse.de \
    --to=hare@suse.de \
    --cc=Chaitanya.Kulkarni@wdc.com \
    --cc=axboe@fb.com \
    --cc=hch@lst.de \
    --cc=kbusch@kernel.org \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-nvme@lists.infradead.org \
    --cc=logang@deltatee.com \
    --cc=maxg@mellanox.com \
    --cc=sagi@grimberg.me \
    --cc=sbates@raithlin.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 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).