P1394 Mail Archive: Re: P1394> Recovery (Was Re: Revised PWG1394 Cmd Set)

Re: P1394> Recovery (Was Re: Revised PWG1394 Cmd Set)

Greg Shue (gregs@sdd.hp.com)
Mon, 27 Jul 1998 10:13:31 -0700 (PDT)

Akihiro Shimura wrote:

> The initiator is already limiting the number of ORB's not to exceed
> maximum reorderable number.

(... number of ORBs in the active task set...)

> By making this condition a little severe, I think we can avoid
> unrecoverable situation without retry interaction between initiator
> and target.
>
> The descriptive condition will be as follows;
>
> The initiator limits
> the number of ORB's not to exceed maximum reorderable number,
> "AND"
> to append the ORB that has sequence identifier target can identify
> as ahead from last completed one.
> "OR"
> If there is no outstanding ORB for the queue, the initiator appends
> ORB that has sequence identifier adjusted to the next number of last
> completed one.
>
> The conditional expression will be as follows;
>
> IF ((Number of outstanding ORB for the queue)
> <= (MAX_TASK_SET_SIZE - n))

(... the first part is always true!)

> AND
> ((((appending sequence id)-(last completed sequence id)) MOD (2^m))
> < (2^(m-1)))
> THEN append ORB with (appending sequence id)
> ELSE
> IF ((Number of outstanding ORB for the queue) = 0)
> THEN adjust (appending sequence id) to (last completed sequence
> id) + 1 and append ORB,
>
> where "n" is room for another queue, and "m" is number of bit of
> sequence id.

Unfortunately, the target isn't going to always recieve
sequence numbers which are monotonically increasing. This is
the consequence of an ABORT_TASK applied to the middle of
a queue. The "sequence number" space has suddenly become
sparse!

Suddenly a sequence number space >> MAX_TASK_SET_SIZE doesn't
guarantee that we can detect order in an error recovery
situation. Both ends may differ as to where they believe the
"last completed sequence number" is!

> If the target finds initiator is ahead, target can simply update
> recorded identifier with the new value specified by the initiator.
>
> Am I missing something?

I think so. Start aborting single tasks from the middle of a
queue and watch what happens to the "sequence numbers" from the
target's perspective.

SBP-2 requires the support of ABORT TASK.

-- 
Greg Shue
Hewlett-Packard Company
All-in-One Division			        gregs@sdd.hp.com
----------------------------------------------------------------