On 6/20/22 08:28, Christoph Hellwig wrote:
On Mon, Jun 20, 2022 at 08:24:24AM +0200, Hannes Reinecke wrote:
So my idea for SATA is simply _not_ to use reserved tags.
Any TMF functions (or the equivalent thereof) should always be sent as
non-NCQ commands. And when doing so we're back to QD=1 on SATA anyway, so
there _must_ be tags available. Consequently the main reason for having
reserved tags (namely to guarantee that tags are available for TMF) doesn't
apply here.
At least in the non-elevator case (which includes all passthrough I/O)
request have tags assigned as soon as they are allocated. So, we
absolutely can have all tags allocated and then need to do a TMF.
SATA internals may come to the rescue here; if there's an error all NCQ
commands are aborted. So we'll get at least one command tag back.
As for the command duration limits I'm still waiting for clarification
from Damien if we can reuse tags there.
But I do agree it's ugly.
Cheers,
Hannes
--
Dr. Hannes Reinecke Kernel Storage Architect
hare@xxxxxxx +49 911 74053 688
SUSE Software Solutions GmbH, Maxfeldstr. 5, 90409 Nürnberg
HRB 36809 (AG Nürnberg), Geschäftsführer: Ivo Totev, Andrew
Myers, Andrew McDonald, Martje Boudien Moerman