Thread (19 messages) 19 messages, 5 authors, 2021-03-15

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

From: Sagi Grimberg <sagi@grimberg.me>
Date: 2021-03-15 17:13:05

quoted
quoted
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...
We never retry admin commands!  And the reserved tags are set aside
and not relevant to the "normal" commands.
You're right, admin commands will be noretry commands. this looks
good to me.

Reviewed-by: Sagi Grimberg <sagi@grimberg.me>

_______________________________________________
Linux-nvme mailing list
Linux-nvme@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-nvme
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help