Messages in this thread | | | Subject | Re: [PATCH 8/8] scsi: libsas: support SATA phy link rate unmatch the pathway | From | Jason Yan <> | Date | Fri, 1 Jun 2018 09:21:44 +0800 |
| |
On 2018/6/1 0:05, John Garry wrote: > On 29/05/2018 03:23, Jason Yan wrote: >> If a SATA disk attached to a expander phy and it's linkrate is greater >> than the expander host phy's linkrate, the disk will failed to discover. >> The topology is like below: >> >> +----------+ +----------+ >> | | | | >> | |-- 3.0 G --| |-- 6.0 G -- SAS disk >> | | | | >> | |-- 3.0 G --| |-- 6.0 G -- SAS disk >> |initiator | | | >> | device |-- 3.0 G --| Expander |-- 6.0 G -- SAS disk >> | | | | >> | |-- 3.0 G --| |-- 6.0 G -- SATA disk -->failed >> to connect >> | | | | >> | | | |-- 6.0 G -- SATA disk -->failed >> to connect >> | | | | >> +----------+ +----------+ >> >> And when we check the sas protocal spec, this scenario is described as >> this: >> >> 7.13 Rate matching >> ...... >> If an expander phy attached to a SATA phy is using a physical link rate >> greater than the maximum connection rate supported by the pathway from >> an STP initiator port, a management application client should use the >> SMP PHY CONTROL function (see 10.4.3.10) to set the PROGRAMMED MAXIMUM >> PHYSICAL LINK RATE field of the expander phy to the maximum connection >> rate supported by the pathway from that STP initiator port. >> >> In order to support this scenario, checking the SATA disk's linkrate >> to see if it is greater than any phy's linkrate it may pass through. >> Remember the minimum linkrate of the pathway and set the SATA phy >> linkrate to it using the SMP PHY CONTROL function. > > As we (re)discover the tree, can we keep track of the min pathway to the > root PHY dynamically (per expander), and then take action for any SATA > devices attached which have a negotiated linkrate greater (than the > expanders min pathway)? This would be an alternate to your approach of > finishing discovery and then checking the min pathway as a whole new step. >
Seems better, I will have a try to see if it works. Thanks.
> > . >
| |