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