From: Benjamin ESTRABAUD <be@mpstor.com>
To: dgilbert@interlog.com
Cc: Ravi Shankar <ravi.v.shankar@oracle.com>,
"linux-scsi@vger.kernel.org" <linux-scsi@vger.kernel.org>
Subject: Re: mpt2sas: /sysfs sas_address entries do not show individual port sas addresses.
Date: Fri, 19 Aug 2011 18:49:38 +0100 [thread overview]
Message-ID: <4E4EA232.6010604@mpstor.com> (raw)
In-Reply-To: <4E4E7A31.4080807@interlog.com>
On 19/08/11 15:58, Douglas Gilbert wrote:
> On 11-08-19 08:30 AM, Benjamin ESTRABAUD wrote:
>> On 18/08/11 20:52, Douglas Gilbert wrote:
>>> On 11-08-18 01:57 PM, Ravi Shankar wrote:
>>>>
>>>>>
>>>>>
>>>>> Do you know a reason why it is not preferably for every
>>>>> phy on a SAS HBA to respond with the same SAS address?
>>>>>
>>>>>
>>>>> As a practical matter a SAS HBA needs a single SAS address,
>>>>> preferably printed on the board or its box. Then if you
>>>>> manage to wipe its SAS address (e.g. by erasing its flash
>>>>> to move from IR to IT firmware) then you know which SAS
>>>>> address to re-instate :-)
>>>>>
>>>> HBA SAS phy could have same SAS address when they are directly
>>>> connected.
>>>> however when connected to expanders, each logical port/phy need
>>>> unique SAS
>>>> address.
>>>
>>> No.
>>>
>>> SAS HBAs and expanders should always be trying to maximize
>>> the width of a link. By definition all physical ** phys on an
>>> expander should (must) have the same SAS address. So if
>>> you connect 5 phys from a SAS HBA to the same expander (and
>>> the HBA supports links wider than 4 phys) then those
>>> 5 HBA phys should have the same SAS address. Those 5 HBA
>>> phys then form a SCSI port.
>>>
>>> Just tested a triangular arrangement: a LSI SAS-2 HBA
>>> (9212-4i4e) connected to one SAS-2 expander (4 phy wide link)
>>> and one SAS-1 expander (narrow link). And the expanders
>>> where connected to each other. Two disks were connected
>>> to the SAS-2 expander.
>>> Both expanders reported the same SAS address for the
>>> 5 HBA attached phys. You might argue that is two
>>> separate SCSI initiator ports with the same port
>>> identifier (SAS address) in the same SAS domain.
>>>
>>> Anyway there was an interesting difference between the HBA's
>>> BIOS and Linux (lk 3.0.3): the BIOS reported those two
>>> disks twice while Linux only reported them once. That seems
>>> to suggest that the BIOS set up the routing table in the
>>> SAS-1 expander while Linux did not. smp_discover in Linux
>>> confirms that the SAS-1 expander's route table was not set up.
>>>
>>> The trouble with testing is that is raises more questions
>>> than it supplies answers.
>>>
>>>
>>> SAS disks have two phys which are typically given two
>>> different SAS addresses. This stops them forming a wide link
>>> if, for example, they were both connected to the same
>>> expander. Typically the two SAS disk phys would be connected
>>> to different expanders for redundancy. However if the
>>> interest was speed (e.g. with a SAS SSD) then both the
>>> disk phys might be given the same SAS address.
>>>
>>>
>>> ** SAS-2 expanders often have an integrated SES target
>>> on a virtual phy in the expander chip, and that
>>> virtual phy has a different SAS address.
>>>
>>> Doug Gilbert
>>>
>>>
>>> P.S. Why is my post cc-ing to "unlisted-recipients:;"
>>>
>>
>> Hi Douglas, Ravi,
>>
>> According to the SAS specs, (ISO/IEC 14776-152:200x, sas2r15.pdf), on
>> page 45,
>> they state that that a port is formed by a unique tuple of the SAS
>> Phy address
>> and the attached SAS Phy address.
>>
>> For instance, if you take 2 * 2 phy wide ports, where all 4 phys from
>> these two
>> ports have the same sas address, let's call it "A" and connect them
>> each to
>> another port that each has a different address, "B" and "C", they
>> state that two
>> ports will be formed, one connecting "A" to "B" and one connecting
>> "A" to "C".
>>
>> This is what Douglas is saying with the SAS disks for instance, that are
>> typically given two separate SAS addresses to avoid forming a wide
>> port with the
>> expander (since the expander will have the same sas address on all
>> phys), and to
>> allow for dual expander multiplexing for redundancy.
>>
>> But what I don't understand is that, in the context of two HBAs
>> connected
>> together, things seem to be different:
>>
>> I configured a 9200-8e HBA (8Phys) and changed all its SAS phys
>> addresses from
>> being the same to being incremental, therefore the last byte of each
>> SAS phy
>> address changed from:
>>
>> 0 1 2 3 4 5 6 7
>> b0 b0 b0 b0 b0 b0 b0 b0
>> to:
>> b0 b1 b2 b3 b4 b5 b6 b7
>>
>> I also changed the "ports" setup from "Auto" to "Wide", making two
>> 4*phys ports:
>>
>> Port 0 | Port 1
>> b0 b1 b2 b3 | b4 b5 b6 b7
>>
>> I also set all these ports to Target.
>>
>> I then connected this HBA to another 9200-8e HBA, which was left
>> setup as default:
>>
>> Auto
>> Initiator
>> 0 1 2 3 4 5 6 7
>> 10 10 10 10 10 10 10 10
>>
>> However, when I looked up the SAS topology on either side in LSIUtil,
>> I saw that
>> there was two ports connected on each HBAs, one connected on phy 0
>> and one on
>> phy 4.
>>
>> On the second (Initiator) HBA, the two ports appeared as b0 and b4,
>> with two
>> separate handles.
>>
>> On the first (Target) HBA, both ports appeared as 10, with two
>> separate handles.
>>
>> What I don't understand above, is since all phys on the Target HBAs
>> have a
>> different SAS address, and all the ones on the Initiator one have the
>> same, 8
>> narrow ports should have been created there.
>>
>> However, there is a separate notion of "port" in LSIUtil, does that
>> mean that
>> agglomerating 4 phys with different SAS addresses in a logical
>> LSIUtil "port"
>> forces the HBA FW to transmit the same sas address on these 4 Phys,
>> to make them
>> look like a single port? Or is there an extra separate notion of
>> "port", that
>> does not rely on the phy SAS address and its attached SAS address?
>>
>> I guess my question is: Is there an extra information ontop of phy
>> sas address
>> and phy id that is transmitted in SAS, like a "port" id or a handle?
>
> Ben,
> In my previous post I assumed that the SAS HBA was a SCSI
> initiator.
>
> And yes, I also felt that LSI has its own meaning for "port"
> and that is not the same as a "SCSI port" or a "SAS port"
> defined in the t10 documents.
>
> There is another piece of the identification puzzle but
> as far as I can see its has not been properly implemented.
> Namely: device name. spl2r02.pdf section 4.2.6:
>
> "Each expander device and SAS device shall include a
> SAS address (see 4.2.4) as its device name.
> A SAS address used as a device name shall not be used
> as any other name or identifier (e.g., a device name,
> port name, port identifier, or logical unit name (see
> SAM-5)), except:
> a) the SAS address of an expander device is the same
> as the SAS address of the SMP port in that expander
> device."
>
> SAS disks comply with this but not SAS initiators (at least
> not the ones that I have checked). So if a SAS HBA in
> initiator mode is to be regarded as a SCSI device then
> it should have a device name which is a SAS address that
> is distinct from the SAS addresses of any of its ports.
Yes, I observed the same thing with all the initiators I have.
It looks like the phys on LSI HBAs are set by reading the SAS ioc or
that the SAS ioc sas address is read by reading the first phy's sas address.
>
>
> BTW Why not put an expander between the HBAs set up as
> an initiator and a target? That way you can check (via
> SMP) that LSIUtil is reporting the same thing as the
> phy does "down the wire". The SMP DISCOVER response
> reports the attached device name.
>
That's a good idea,
I'll try if possible.
Thanks for your reply.
Regards,
Ben.
> Doug Gilbert
>
>> Also, in the above case, if we assume that the HBA FW was
>> transmitting the same
>> phys for phy 0-3 and phy 4-8 on the Target HBA, it would make sense
>> that we have
>> two ports, since there is two pairs of SAS addresses / attached SAS
>> addresses here.
>>
>> Am I holding on to the right belief?
>>
>> Thanks in advance for your reply.
>>
>> Regards,
>> Ben.
>>
>> PS: The "Undisclosed recipient" was because Ravi seemed to have
>> replied with a
>> hidden "To:" and CC'ed to the linux-scsi ML.
>>> To unsubscribe from this list: send the line "unsubscribe
>>> linux-scsi" in
>>> the body of a message to majordomo@vger.kernel.org
>>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>>>
>>
>>
>
>
next prev parent reply other threads:[~2011-08-19 17:49 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-08-17 10:42 mpt2sas: /sysfs sas_address entries do not show individual port sas addresses Benjamin ESTRABAUD
2011-08-17 15:35 ` Douglas Gilbert
2011-08-17 15:50 ` Benjamin ESTRABAUD
2011-08-18 17:57 ` Ravi Shankar
2011-08-18 19:52 ` Douglas Gilbert
2011-08-19 12:30 ` Benjamin ESTRABAUD
2011-08-19 14:58 ` Douglas Gilbert
2011-08-19 17:49 ` Benjamin ESTRABAUD [this message]
2011-08-19 19:06 ` Ravi Shankar
2011-08-21 1:05 ` Douglas Gilbert
2011-08-23 19:39 ` Ravi Shankar
2011-08-24 14:12 ` Benjamin ESTRABAUD
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4E4EA232.6010604@mpstor.com \
--to=be@mpstor.com \
--cc=dgilbert@interlog.com \
--cc=linux-scsi@vger.kernel.org \
--cc=ravi.v.shankar@oracle.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox