[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