[PATCH 1/3] nvme-fabrics: only reserve a single tag

Sagi Grimberg sagi at grimberg.me
Fri Mar 5 20:51:15 GMT 2021


> Fabrics drivers currently reserve two tags on the admin queue.  But
> given that the connect command is only run on a freshly created queue
> or after all commands have been force aborted we only need to reserve
> a single tag.

Umm, I think this would be an issue for non-mpath fabrics devices...

When we teardown the controller, we iterate over all tags
and cancel them, however for non-mpath devices these actually
stick around until they exhaust the retrys counter (with the
hope that the controller will reconnect again) unlike the mpath
case where the requests are failed-over.

Now if the admin queue is absolutely full during a reset, we won't
have a keep-alive command.

One possible solution is to make sure that
nvme_decide_disposition to complete a request for admin
commands. However note that this means that admin commands
would fail immediately when the controller resets, which is
a regression from the existing behavior and we may piss off
users with that...



More information about the Linux-nvme mailing list