Re: [PATCH v15 7/9] nvmet-passthru: Add passthru code to process commands

From: Sagi Grimberg
Date: Mon Jul 20 2020 - 20:39:19 EST



On Mon, Jul 20, 2020 at 05:01:19PM -0600, Logan Gunthorpe wrote:
On 2020-07-20 4:35 p.m., Sagi Grimberg wrote:

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.

We still need a request_queue to dispatch the command. I guess you could
make a generic one for the controller that isn't tied to a namespace,
but we lose the fair shared tag allocation.

What do you mean fair shared tag allocation?

See hctx_may_queue().

Still not following your point... this queue is yet another request
queue on the I/O tagset, e.g.

ctrl->passthru_q = blk_mq_init_queue(ctrl->tagset);