Messages in this thread | | | Subject | Re: [PATCH v15 7/9] nvmet-passthru: Add passthru code to process commands | From | Sagi Grimberg <> | Date | Wed, 22 Jul 2020 15:31:34 -0700 |
| |
>>> 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).
Nice..
> 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.
Let's defer it to a followup set than.
| |