From: Logan Gunthorpe <logang@deltatee.com>
To: Sagi Grimberg <sagi@grimberg.me>, Christoph Hellwig <hch@lst.de>
Cc: linux-kernel@vger.kernel.org, linux-nvme@lists.infradead.org,
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 v15 7/9] nvmet-passthru: Add passthru code to process commands
Date: Wed, 22 Jul 2020 15:09:52 -0600 [thread overview]
Message-ID: <98f45e65-2967-3af9-69d1-077a32c43fa2@deltatee.com> (raw)
In-Reply-To: <2dc39232-4042-1f93-3dcc-3266e70cf6f0@grimberg.me>
On 2020-07-20 4:35 p.m., Sagi Grimberg wrote:
>
>> Thanks for the review Christoph. I think I should be able to make all
>> the requested changes in the next week or two.
>>
>> On 2020-07-20 1:35 p.m., Sagi Grimberg wrote:
>>>
>>>> I'm still not so happy about having to look up the namespace and still
>>>> wonder if we should generalize the connect_q to a passthrough_q. But
>>>> I guess we can do that later and then reduce some of the exports here..
>>>
>>> That is a neat idea! should be easy to do (and we can then lose the host
>>> xarray stuff). I don't mind having it on a later patch, but it should be
>>> easy enough to do even before...
>>>
>>
>> I sort of follow this. I can try to work something up but it will
>> probably take me a few iterations to get it to where you want it. So,
>> roughly, we'd create a passthrough_q in core with the controller's IO
>> tagset and then cleanup the fabrics hosts to use that instead of each
>> independently creating their connect_q?
>>
>> Though, I don't understand how this relates to the host xarray stuff
>> that Sagi mentioned...
>
> passthru commands are in essence REQ_OP_DRV_IN/REQ_OP_DRV_OUT, which
> means that the driver shouldn't need the ns at all. So if you have a
> dedicated request queue (mapped to the I/O tagset), you don't need the
> ns->queue and we can lose the ns lookup altogether.
>
> The only part is to check the effects, but that can probably be handled
> when we setup the passthru controller or something...
Yes, I implemented the passthru_q (which was quite simple). But I'm not
sure how we are supposed to call nvme_command_effects() correctly
without the ns. You can't possibly do that during setup for every
possible opcode on every namespace. And even if we do, we'll still need
the same nvme_find_get_ns() and nvme_put_ns() exports and probably
another xarray to lookup the information.
Also, we pass the namespace's disk to in order to get proper block
accounting for the underlying disk. (Which is pretty important for
debugging). So we need to lookup the namespace for this too.
Unless there are some other ideas to solve these issues, I don't think
this change will gain us anything.
Logan
next prev parent reply other threads:[~2020-07-22 21:10 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-07-16 20:33 [PATCH v15 0/9] nvmet: add target passthru commands support Logan Gunthorpe
2020-07-16 20:33 ` [PATCH v15 1/9] nvme-core: Clear any SGL flags in passthru commands Logan Gunthorpe
2020-07-20 14:01 ` Christoph Hellwig
2020-07-16 20:33 ` [PATCH v15 2/9] nvme: Create helper function to obtain command effects Logan Gunthorpe
2020-07-20 14:04 ` Christoph Hellwig
2020-07-16 20:33 ` [PATCH v15 3/9] nvme: Move nvme_passthru_[start|end]() calls to common helper Logan Gunthorpe
2020-07-20 14:06 ` Christoph Hellwig
2020-07-16 20:33 ` [PATCH v15 4/9] nvmet-passthru: Introduce NVMet passthru Kconfig option Logan Gunthorpe
2020-07-20 14:06 ` Christoph Hellwig
2020-07-16 20:33 ` [PATCH v15 5/9] nvme-core: Introduce nvme_ctrl_get_by_path() Logan Gunthorpe
2020-07-20 14:09 ` Christoph Hellwig
2020-07-16 20:33 ` [PATCH v15 6/9] nvme: Export existing nvme core functions Logan Gunthorpe
2020-07-16 20:33 ` [PATCH v15 7/9] nvmet-passthru: Add passthru code to process commands Logan Gunthorpe
2020-07-20 14:16 ` Christoph Hellwig
2020-07-20 19:35 ` Sagi Grimberg
2020-07-20 21:41 ` Logan Gunthorpe
2020-07-20 21:58 ` Chaitanya Kulkarni
2020-07-20 22:35 ` Sagi Grimberg
2020-07-20 23:01 ` Logan Gunthorpe
2020-07-20 23:15 ` Sagi Grimberg
2020-07-20 23:17 ` Keith Busch
2020-07-20 23:28 ` Sagi Grimberg
2020-07-21 0:06 ` Keith Busch
2020-07-21 0:39 ` Sagi Grimberg
2020-07-22 21:09 ` Logan Gunthorpe [this message]
2020-07-22 22:31 ` Sagi Grimberg
2020-07-16 20:33 ` [PATCH v15 8/9] nvmet-passthru: Add enable/disable helpers Logan Gunthorpe
2020-07-16 20:33 ` [PATCH v15 9/9] nvmet-configfs: Introduce passthru configfs interface 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=98f45e65-2967-3af9-69d1-077a32c43fa2@deltatee.com \
--to=logang@deltatee.com \
--cc=Chaitanya.Kulkarni@wdc.com \
--cc=axboe@fb.com \
--cc=hch@lst.de \
--cc=kbusch@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-nvme@lists.infradead.org \
--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
all inboxes | Powered by JetHome®