Deadlock Scenario (?)

Fred Dutton fred.dutton at qlogic.com
Wed Jun 23 17:45:32 PDT 2004


* From the T10 Reflector (t10 at t10.org), posted by:
* Fred Dutton <fred.dutton at qlogic.com>
*

Assuming an edge expander supports a limited number of connections (by limited I mean it only supports a number of concurrent connections less than what is physically 
possible). For example if an expander includes eight external phys, then the maximum number of concurrent connections --end device to end device-- is four but the SAS 
specification only requires a minimum of one connection (see 4.6.4). So the expander could, in theory, support a number of connections less than four.

Suppose two edge expanders supporting N connections each are connected to each other forming a wide port with M physical links, where M > N.

Is it possible to get into a deadlock situation because there are more links in the wide port than connections supported by each expander?

For discussion purposes, suppose two edge expanders that support only one connection each, are connected to each other through a wide X2 port.

How should the following deadlock be resolved? (You may have use mono space fonts to get this message to display correctly)

                                                                                    
                       Edge                            Edge                         
                     Expander 1                      Expander 2                     
                    _____________                   _____________                   
                   |      B      |  OPEN (C to D)  |             |                  
                   |PhyZ  L  PhyY| <-------------- |PhyL     PhyK|                  
     End      =====|      O <----|=================|<------------|===== End         
     Device D      |      C      |   ---------->   |             |      Device C    
                   |      K      |   AIP(W.O.C.)   |             |                  
                   |             |                 |             | <-- OPEN (C to D)
                   |             |                 |             |                  
                   |             |                 |             |                  
 OPEN (A to B) --> |             |  OPEN (A to B)  |      B      |                  
                   |             | --------------> |      L      |                  
     End      =====|------------>|=================|----> O      |===== End         
     Device A      |PhyW     PhyX|   <----------   |PhyM  C  PhyN|      Device B    
                   |             |   AIP(W.O.C.)   |      K      |                  
                    -------------                   -------------                   

                                                                                    
       Time                             Time                                        
         |                                |                                         
         |   Activity in Expander 1:      |  Activity in Expander 2:                
         |   ---------------------------- |  ----------------------------           
         |   Device A sends OPEN (A to B) |  Device C sends OPEN (C to D)           
         |                                |                                         
         |   PhyW receives OPEN (A to B)  |  PhyK receives OPEN (C to D)            
         |     and arbitrates for path    |    and arbitrates for path              
         |     resources. It wins.        |    resources. It wins.                  
         |                                |                                         
         |   PhyY receives OPEN (C to D)  |  PhyM receives OPEN (A to B)            
         |     and arbitrates for path    |    and arbitrates for path              
         |     resources. In response     |     resources. In response              
         |     to the request, the ECM    |     to the request, the ECM             
         |     will return an 'Arbitra-   |     will return an 'Arbitra-            
         |     ting (Waiting on Connec-   |     ting (Waiting on Connec-            
         |     tion)' confirmation        |     tion)' confirmation                 
         |     because there aren't       |     because there aren't                
         |     enough routing resources.  |     enough routing resources.           
         |     (see Table 11)             |     (see Table 11)                      
         |                                |                                         
         |   PhyY continuously sends      |  PhyM continuously sends                 
         |     AIP(WAITING ON CONNECTION) |    AIP(WAITING ON CONNECTION)           
         |     primitives.                |    primitives.                          
         |                                |                                         
         |   Device A receives            |  Device C receives                      
         |     AIP(WAITING ON CONNECTION) |    AIP(WAITING ON CONNECTION)           
         |     primitives. It never       |    primitives. It never                 
         |     receives an open confir-   |    receives an open confir-             
         |     mation (OPEN_ACCEPT or     |    mation (OPEN_ACCEPT or               
         |     OPEN_REJECT).              |    OPEN_REJECT).                        
         |                                |                                         
         V                                V                                         

  
Thanks,

Fred Dutton

----------------------------------------------------
Fred Dutton * QLogic * 949.389.6340




*
* 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