12-458 comments from SOP PQI WG meeting

Elliott, Robert (Server Storage) Elliott at hp.com
Wed Jan 9 16:31:01 PST 2013

Formatted message: <a href="http://www.t10.org/cgi-bin/ac.pl?t=r&f=r1301093_f.htm">HTML-formatted message</a>

Here are the comments recorded on 12-458 during the SOP PQI WG meeting, for
people to think about for tomorrow morning:
Without IQ added everywhere, ABORT TASK and QUERY TASK must be sent down the
same IQ as the command that they are affecting.
If IQ were added alongside the REQUEST IDENTIFIER, then the ABORT TASK and
QUERY TASK could be sent down other IQs.  However, the initiator would need
to implement Request Fence to ensure that the other IQs have been consumed
before sending the ABORT TASK or QUERY TASK, to avoid a race condition where
the ABORT TASK or QUERY TASK arrives before the command that it is trying to
must implement Request Fence and wait for the other IQs to be consumed before
sending the TMF.  Adding IQ alongside REQUEST IDENTIFIER doesn't help this.
1. add "send ABORT TASK and QUERY TASK down same IQ" rule   (or every IQ, if
it doesn't remember... ugly for QUERY TASK)
2 a) add Request Fence rules.  Scope=I_T_L_Q means #1.	Scope=I_T_L or I_T
means initiator port wait for all other IQs to be consumed (based on IQ CI)
before sending the command or TMF specifying Request Fence.
2 b) Make the device check all the PIs when it receives a command or TMF that
affects other commands (i.e. implies Request Fence). Must decode the command
or TMF to make this decision.  Drain all those other IQs before processing
this command or TMF.  The initiator is required to post all affected commands
to the other queues for this to work - cannot be stuck pre-queue.  So this
means Request Fence just forces the commands to be produced (visible via PI),
not consumed (CI).  The driver can also interpret the TMF itself and e.g.
abort commands that aren't produced yet.
3. add OQ alongside Request ID for ABORT TASK and QUERY TASK to effectively
expand the number of tags
4. add optional IQ alongside Request ID for ABORT TASK and QUERY TASK so they
can be sent down different IQs than the command they are affecting.
5 a) Do not support multiple initiators sharing one function.  Use SR-IOV for
that; or
5 b) add an Initiator Identifier during queue creation that can be used to
identify sets of IQs as related, and send the TMF down any IQ within the set.
 Since there is only one admin queue pair, a hypervisor would have to handle
the queue creation.

More information about the T10 mailing list