SAS-2 Bus Inactivity Timer

Stephen FINCH steve.finch at st.com
Wed May 24 11:56:56 PDT 2006


* From the T10 Reflector (t10 at t10.org), posted by:
* Stephen FINCH <steve.finch at st.com>
*
Gerry,
I think that the step before the added step reinitializes the Bus Inactivity
Timer.	So starting it after it was initialized should be right. This timer
is to make sure this device doesn’t tie up the bus, thus it monitors only
the transmit activity.	The other end of the bus should be monitoring itself.
As to the timer running while a frame is being sent, you are right. This
change would start the time upon the receipt of a frame request.  It
doesn’t account for the time delays due to credit not being available, the
transmission time of the frame itself or the delay in receiving back an ACK
or NAK. 
In SAS 1.1, the timer was stopped when a frame transmit request was received
|from the PL_OC state machine, and reset and restarted when an ACK or NAK was
received. If an ACK or NAK was not received, the ACK/NAK timeout would catch
it.  This, to me, is a better solution.
This area was removed in the update caused by the 05-305 document and appears
for the first time in SAS-2r00.
I think this discussion will be helpful to other.  Can I send it to the
reflector?
Additional comments/questions requested.
Steve Finch
-----Original Message-----
From: Gerry.Houlder at seagate.com [mailto:Gerry.Houlder at seagate.com] 
Sent: Wednesday, May 24, 2006 7:32 AM
To: steve.finch at st.com
Subject: Re: SAS-2 Bus Inactivity Timer
In the step you added:
"(c) start the Bus Inactivity Time Limit timer."
Shouldn't the timer be set to zero before it is started? Also, shouldn't
there be a wait until the "bus is inactive again" before the timer is
started? Per the change you propose, it seems like the timer will be started
again while a frame is being received or sent. This shouldn't count as an
inactive bus.
	     Stephen FINCH						   
	     <steve.finch at st.c						   
	     om>							To 
	     Sent by:		       <t10 at t10.org>			   
	     owner-t10 at t10.org						cc 
	     No Phone Info						   
	     Available						   Subject 
				       SAS-2 Bus Inactivity Timer	   
	     05/23/2006 04:14						   
	     PM 							   
* From the T10 Reflector (t10 at t10.org), posted by:
* Stephen FINCH <steve.finch at st.com>
*
When going from SAS 1.1 to SAS 2 and incorporating changes contained per
05-305r0, we accidentally broke the Bus Inactivity Timer.
In section 8.2.3.4.1 PL_PM3:Connected state description, it states:
“If:
    a) the protocol for the connection is SSP, the port is an SSP target
port, and the BUS INACTIVITY TIME LIMIT
       field in the Disconnect-Reconnect mode page (see 10.2.7.1) is set to a
non-zero value; or
    b) the protocol for the connection is STP, the port is an STP initiator
port, and the STP BUS INACTIVITY TIME
       LIMIT field is not set to zero in the SMP REPORT GENERAL response for
the destination STP target
       port,
then, upon entry into this state, this state shall:
    a) create a Bus Inactivity Time Limit timer;
    b) initialize the Bus Inactivity Time Limit timer as specified in table
122 (see 8.2.3.1); and
    c) start the Bus Inactivity Time Limit timer.
If a Bus Inactivity Time Limit timer has been created and:
    a) the connection is SSP or SMP and this state receives a Tx Frame
message; or
    b) the connection is STP and the phy is not both transmitting and
receiving SATA_SYNC,
then this state shall:
    a) stop the Bus Inactivity Time Limit timer, if it is running; and
    b) initialize the Bus Inactivity Time Limit timer as specified in table
122 (see 8.2.3.1).”
My interpretation is the timer to be created when the connection is
established. When the transport requests a frame to be transmitted, the timer
is stopped. There is no case that it is again started.	Thus no timeout will
occur. This is WRONG.
Proposed solution:
Add a third step to the actions to be taken after receiving a Tx Frame
message so that the second “if” quoted above reads as follows:
“If a Bus Inactivity Time Limit timer has been created and:
    a) the connection is SSP or SMP and this state receives a Tx Frame
message; or
    b) the connection is STP and the phy is not both transmitting and
receiving SATA_SYNC,
then this state shall:
    a) stop the Bus Inactivity Time Limit timer, if it is running; and
    b) initialize the Bus Inactivity Time Limit timer as specified in table
122 (see 8.2.3.1).
    c) start the Bus Inactivity Time Limit timer.”
Regards,
Stephen Finch
STMicroelectronics
303 381-3587
steve.finch at st.com
*
* For T10 Reflector information, send a message with
* 'info t10' (no quotes) in the message body to majordomo at t10.org
*
* For T10 Reflector information, send a message with
* 'info t10' (no quotes) in the message body to majordomo at t10.org



More information about the T10 mailing list