[PATCH v2 1/8] nvme-fabrics: allow to queue requests for live queues

Sagi Grimberg sagi at grimberg.me
Fri Aug 14 13:49:52 EDT 2020


>>> Which will still happen with the admin queue user passthrough
>>> commands with this patch, so I don't think it actually solves anything,
>>> it just reduces the exposure a bit.
>>
>> The original version of the patch removed that as well, but james
>> indicated that it's still needed because we have no way to make sure
>> the admin (re)connect will be the first request when we unquiesce.
> 
> Is that whole thing really a problem?  All the pass through requests
> are inserted at the head of the queue, so how could something else
> slip in before it?  If we have a race window we probably need
> to use BLK_MQ_REQ_PREEMPT or something like to force executing the
> connect on an otherwise frozen queue.

The problem is that we have to unquiesce the admin queue in order
to send the connect request (because it's sent on the ctrl->admin_q),
and once we do that, quiesced commands go through and the condition
being discussed is what's preventing them from passing through.

As James noted, not only before the admin connect but also before
the controller was enabled.

Anyways, this needs to be resolved, but it doesn't make this change
incorrect.



More information about the Linux-nvme mailing list