Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 30 May 2017 11:31:33 -0600
From:      Alan Somers <asomers@freebsd.org>
To:        Dustin Wenz <dustinwenz@ebureau.com>
Cc:        FreeBSD-scsi <freebsd-scsi@freebsd.org>
Subject:   Re: Inferring SAS expander topology
Message-ID:  <CAOtMX2h-E_GG9wopPH5Zz2jTZ%2BrqBmyJRSVvU9wxr4fczoHBiA@mail.gmail.com>
In-Reply-To: <18E31C87-AB53-491F-9E40-F496AE31E305@ebureau.com>
References:  <18E31C87-AB53-491F-9E40-F496AE31E305@ebureau.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, May 30, 2017 at 11:00 AM, Dustin Wenz <dustinwenz@ebureau.com> wrot=
e:
> I'm working on a server that has 6 LSI SAS expanders connected to it. Two=
 of them are throwing intermittent command errors and need some attention. =
Because the host only has four external 8088 ports, I know some of the expa=
nders are chained through each other.
>
> Before I can send parts for replacement, I need to determine if the two p=
roblematic expanders are either daisy-chained or directly connected to the =
host. On Linux, this is trivial; I would just browse the device topology in=
 /sys/. However, this machine is running FreeBSD 10.3, and I am unable to f=
ind a way to do this. I have sg3_utils available, as well as any build-in F=
reeBSD tools. Using this software, is it possible to determine if a SAS exp=
ander is chained off of another?
>
>         - .Dustin

I don't think sg3_utils will help you.  You want sysutils/smp_utils
instead.  If you install that and then run "smp_discover /dev/ses0",
it will show you what each phy is connected to.  Usually, there will
be four phys connected to the upstream port.  You can tell by their
EUI64s whether they're connected directly to the HBA or to another
expander.  And you can tell which expander by comparing the exact
EUI64 to each other expander's SEP phy.  Note that with LSI expanders,
the SEP's address usually differs from the expander's address by a few
bits in the last byte.  For example, if the expander's address is
0x50000000000000ff, then the SEP's address might by
0x50000000000000ffd.  Here's some example output from one of my
systems:

# smp_discover /dev/ses3
  phy   0:U:attached:[500093d23000a000:00  t(SATA)]  6 Gbps
  phy   1:U:attached:[500093d23000a001:00  t(SATA)]  6 Gbps
  phy   2:U:attached:[500093d23000a002:00  t(SATA)]  6 Gbps
  phy   3:U:attached:[500093d23000a003:00  t(SATA)]  6 Gbps
  phy   4:U:attached:[500093d23000a17f:11 exp t(SMP)]  6 Gbps
         <- Connected to the other expander
  phy   5:U:attached:[500093d23000a17f:10 exp t(SMP)]  6 Gbps
         <- Connected to the other expander
  phy   6:U:attached:[500093d23000a17f:09 exp t(SMP)]  6 Gbps
         <- Connected to the other expander
  phy   7:U:attached:[500093d23000a17f:08 exp t(SMP)]  6 Gbps
         <- Connected to the other expander
  phy   8:U:attached:[500093d23000a1bf:11 exp t(SMP)]  6 Gbps
         <- Connected to a third expander
  phy   9:U:attached:[500093d23000a1bf:10 exp t(SMP)]  6 Gbps
         <- Connected to a third expander
  phy  10:U:attached:[500093d23000a1bf:09 exp t(SMP)]  6 Gbps
        <- Connected to a third expander
  phy  11:U:attached:[500093d23000a1bf:08 exp t(SMP)]  6 Gbps
        <- Connected to a third expander
  phy  16:U:attached:[500093d23000a010:00  t(SATA)]  6 Gbps
  phy  17:U:attached:[500093d23000a011:00  t(SATA)]  6 Gbps
  phy  18:U:attached:[500093d23000a012:00  t(SATA)]  6 Gbps
  phy  19:U:attached:[500093d23000a013:00  t(SATA)]  6 Gbps
  phy  20:U:attached:[500093d23000a014:00  t(SATA)]  6 Gbps
  phy  21:U:attached:[500093d23000a015:00  t(SATA)]  6 Gbps
  phy  22:U:attached:[500093d23000a016:00  t(SATA)]  6 Gbps
  phy  23:U:attached:[500093d23000a017:00  t(SATA)]  6 Gbps
  phy  25:U:attached:[500093d23000a019:00  t(SATA)]  6 Gbps
  phy  26:U:attached:[500093d23000a01a:00  t(SATA)]  6 Gbps
  phy  29:U:attached:[500093d23000a01d:00  t(SATA)]  6 Gbps
  phy  30:U:attached:[500093d23000a01e:00  t(SATA)]  6 Gbps
  phy  31:U:attached:[500093d23000a01f:00  t(SATA)]  6 Gbps
  phy  33:U:attached:[500093d23000a021:00  t(SATA)]  6 Gbps
  phy  34:U:attached:[500093d23000a022:00  t(SATA)]  6 Gbps
  phy  35:U:attached:[500093d23000a023:00  t(SATA)]  6 Gbps
  phy  36:U:attached:[500093d23000a024:00  t(SATA)]  6 Gbps
  phy  37:U:attached:[500093d23000a025:00  t(SATA)]  6 Gbps
  phy  38:U:attached:[500093d23000a026:00  t(SATA)]  6 Gbps
  phy  39:U:attached:[500093d23000a027:00  t(SATA)]  6 Gbps
  phy  40:U:attached:[500605b008a93990:04  i(SSP+STP+SMP)]  6 Gbps
  <- Connected to an LSI HBA
  phy  41:U:attached:[500605b008a93990:07  i(SSP+STP+SMP)]  6 Gbps
  <- Connected to an LSI HBA
  phy  42:U:attached:[500605b008a93990:05  i(SSP+STP+SMP)]  6 Gbps
  <- Connected to an LSI HBA
  phy  43:U:attached:[500605b008a93990:06  i(SSP+STP+SMP)]  6 Gbps
  <- Connected to an LSI HBA
  phy  48:D:attached:[500093d23000a03d:00  V i(SMP) t(SSP)]  12 Gbps
      <- This expander's SEP

# smp_discover /dev/pass121
  phy   0:U:attached:[500093d23000a140:00  t(SATA)]  6 Gbps
  phy   1:U:attached:[500093d23000a141:00  t(SATA)]  6 Gbps
  phy   2:U:attached:[500093d23000a142:00  t(SATA)]  6 Gbps
  phy   3:U:attached:[500093d23000a143:00  t(SATA)]  6 Gbps
  phy   4:U:attached:[500093d23000a144:00  t(SATA)]  6 Gbps
  phy   5:U:attached:[500093d23000a145:00  t(SATA)]  6 Gbps
  phy   6:U:attached:[500093d23000a146:00  t(SATA)]  6 Gbps
  phy   7:U:attached:[500093d23000a147:00  t(SATA)]  6 Gbps
  phy   8:U:attached:[500093d23000a03f:07 exp t(SMP)]  6 Gbps
         <- Connected to the other expander
  phy   9:U:attached:[500093d23000a03f:06 exp t(SMP)]  6 Gbps
         <- Connected to the other expander
  phy  10:U:attached:[500093d23000a03f:05 exp t(SMP)]  6 Gbps
        <- Connected to the other expander
  phy  11:U:attached:[500093d23000a03f:04 exp t(SMP)]  6 Gbps
        <- Connected to the other expander
  phy  12:U:attached:[500093d23000a14c:00  t(SATA)]  6 Gbps
  phy  14:U:attached:[500093d23000a14e:00  t(SATA)]  6 Gbps
  phy  15:U:attached:[500093d23000a14f:00  t(SATA)]  6 Gbps
  phy  16:U:attached:[500093d23000a150:00  t(SATA)]  6 Gbps
  phy  17:U:attached:[500093d23000a151:00  t(SATA)]  6 Gbps
  phy  18:U:attached:[500093d23000a152:00  t(SATA)]  6 Gbps
  phy  19:U:attached:[500093d23000a153:00  t(SATA)]  6 Gbps
  phy  20:U:attached:[500093d23000a154:00  t(SATA)]  6 Gbps
  phy  21:U:attached:[500093d23000a155:00  t(SATA)]  6 Gbps
  phy  22:U:attached:[500093d23000a156:00  t(SATA)]  6 Gbps
  phy  23:U:attached:[500093d23000a157:00  t(SATA)]  6 Gbps
  phy  24:U:attached:[500093d23000a158:00  t(SATA)]  6 Gbps
  phy  25:U:attached:[500093d23000a159:00  t(SATA)]  6 Gbps
  phy  26:U:attached:[500093d23000a15a:00  t(SATA)]  6 Gbps
  phy  27:U:attached:[500093d23000a15b:00  t(SATA)]  6 Gbps
  phy  28:U:attached:[500093d23000a15c:00  t(SATA)]  6 Gbps
  phy  29:U:attached:[500093d23000a15d:00  t(SATA)]  6 Gbps
  phy  30:U:attached:[500093d23000a15e:00  t(SATA)]  6 Gbps
  phy  32:U:attached:[500093d23000a160:00  t(SATA)]  6 Gbps
  phy  33:U:attached:[500093d23000a161:00  t(SATA)]  6 Gbps
  phy  34:U:attached:[500093d23000a162:00  t(SATA)]  6 Gbps
  phy  35:U:attached:[500093d23000a163:00  t(SATA)]  6 Gbps
  phy  36:U:attached:[500093d23000a164:00  t(SATA)]  6 Gbps
  phy  37:U:attached:[500093d23000a165:00  t(SATA)]  6 Gbps
  phy  38:U:attached:[500093d23000a166:00  t(SATA)]  6 Gbps
  phy  39:U:attached:[500093d23000a167:00  t(SATA)]  6 Gbps
  phy  40:D:attached:[500093d23000a17d:00  V i(SMP) t(SSP)]  12 Gbps
    <- This expander's SEP

-Alan



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAOtMX2h-E_GG9wopPH5Zz2jTZ%2BrqBmyJRSVvU9wxr4fczoHBiA>