From: Alexis Bruemmer <alexisb@us.ibm.com>
To: James Bottomley <James.Bottomley@SteelEye.com>
Cc: Alexis Bruemmer <alexisb@us.ibm.com>,
linux-scsi <linux-scsi@vger.kernel.org>
Subject: Re: [PATCH] aic94xx: make use of the new sas_port
Date: Wed, 31 May 2006 15:00:02 -0700 [thread overview]
Message-ID: <1149112802.7543.83.camel@localhost.localdomain> (raw)
In-Reply-To: <1149109073.22134.105.camel@mulgrave.il.steeleye.com>
On Wed, 2006-05-31 at 15:57 -0500, James Bottomley wrote:
> On Wed, 2006-05-31 at 12:46 -0700, Alexis Bruemmer wrote:
> > there is a sas_device, sas_end_device, and a sas_expander dir.
> > sas_device contains the same info as sas_end_device, and a sas_expander
> > can we eliminate one or the other? Or was this a design choice?
>
> Not really. This is a design choice given to us by the interface.
> Everything that's connected to a port is a sas_device. As such, they
> all share a set of characteristics (initiator and target roles, sas
> address and so forth). The specific devices (sas_expander and
> sas_end_device) contain only parameters that are specific to the device,
> so the expander shows the manufacturer and component info. The
> end_device shows the SAS mandated parameters like ready led and nexus
> loss timeout).
OK, makes sense
>
> > Also during the boot process on the x260 with an expander we see these
> > printk's:
> > sas: phy[n] matched wide port0
> > If we are going to print this then we better be sure that this is truly
> > a wide port. It seems under the sys/class/ we have both a single
> > port0:0 and then also port-0:0:[n]-- a port[n] for each phy[n]. and
> > although each phy seems to have the same sas_address the end_device
> > attached to that phy have unique addresses. My understanding is that a
> > wide port has multiple phys with the same sas address and are attached
> > to one end device. I believe that the expander situation is not the
> > same as wide port. If this is the case then it is as simple as changing
> > the printk statement to not say "wide port"
>
> As I read the code, it only prints that when it actually finds a wide
> port (as in a port that already has a phy attached) ... do an ls -R of
> your tree and I'll see if I can figure out what your topology is.
Below is a ls -R of my tree on this machine. It seems that it sees the
expander as a wide port (port-0:0) and then the expander has a series of
phys attached to end devices. What I am curious about is the
port-0:0:[0...4]-- the way this is laid out it seems that there is one
port for each phy which is attached to one end device, which would be a
narrow port. Does your x260 create the same topology?
--Alexis
tree:
sas_device:
end_device-0:0-0 end_device-0:1-1 end_device-0:2-2 end_device-0:3-3
end_device-0:4-4 expander-0:0
sas_device/end_device-0:0-0:
device device_type initiator_port_protocols phy_identifier
sas_address target_port_protocols uevent
sas_device/end_device-0:1-1:
device device_type initiator_port_protocols phy_identifier
sas_address target_port_protocols uevent
sas_device/end_device-0:2-2:
device device_type initiator_port_protocols phy_identifier
sas_address target_port_protocols uevent
sas_device/end_device-0:3-3:
device device_type initiator_port_protocols phy_identifier
sas_address target_port_protocols uevent
sas_device/end_device-0:4-4:
device device_type initiator_port_protocols phy_identifier
sas_address target_port_protocols uevent
sas_device/expander-0:0:
device device_type initiator_port_protocols phy_identifier
sas_address target_port_protocols uevent
sas_end_device:
end_device-0:0-0 end_device-0:1-1 end_device-0:2-2 end_device-0:3-3
end_device-0:4-4
sas_end_device/end_device-0:0-0:
device initiator_response_timeout I_T_nexus_loss_timeout
ready_led_meaning uevent
sas_end_device/end_device-0:1-1:
device initiator_response_timeout I_T_nexus_loss_timeout
ready_led_meaning uevent
sas_end_device/end_device-0:2-2:
device initiator_response_timeout I_T_nexus_loss_timeout
ready_led_meaning uevent
sas_end_device/end_device-0:3-3:
device initiator_response_timeout I_T_nexus_loss_timeout
ready_led_meaning uevent
sas_end_device/end_device-0:4-4:
device initiator_response_timeout I_T_nexus_loss_timeout
ready_led_meaning uevent
sas_expander:
expander-0:0
sas_expander/expander-0:0:
component_id component_revision_id component_vendor_id device level
product_id product_rev uevent vendor_id
sas_host:
host0
sas_host/host0:
device uevent
sas_phy:
phy-0:0 phy-0-0:1 phy-0-0:11 phy-0-0:2 phy-0-0:4 phy-0-0:6
phy-0-0:8 phy-0:1 phy-0:3 phy-0:5 phy-0:7
phy-0-0:0 phy-0-0:10 phy-0-0:12 phy-0-0:3 phy-0-0:5 phy-0-0:7
phy-0-0:9 phy-0:2 phy-0:4 phy-0:6
sas_phy/phy-0:0:
device invalid_dword_count maximum_linkrate_hw
negotiated_linkrate running_disparity_error_count uevent
device_type loss_of_dword_sync_count minimum_linkrate
phy_identifier sas_address
initiator_port_protocols maximum_linkrate minimum_linkrate_hw
phy_reset_problem_count target_port_protocols
sas_phy/phy-0-0:0:
device invalid_dword_count maximum_linkrate_hw
negotiated_linkrate running_disparity_error_count uevent
device_type loss_of_dword_sync_count minimum_linkrate
phy_identifier sas_address
initiator_port_protocols maximum_linkrate minimum_linkrate_hw
phy_reset_problem_count target_port_protocols
sas_phy/phy-0-0:1:
device invalid_dword_count maximum_linkrate_hw
negotiated_linkrate running_disparity_error_count uevent
device_type loss_of_dword_sync_count minimum_linkrate
phy_identifier sas_address
initiator_port_protocols maximum_linkrate minimum_linkrate_hw
phy_reset_problem_count target_port_protocols
sas_phy/phy-0-0:10:
device invalid_dword_count maximum_linkrate_hw
negotiated_linkrate running_disparity_error_count uevent
device_type loss_of_dword_sync_count minimum_linkrate
phy_identifier sas_address
initiator_port_protocols maximum_linkrate minimum_linkrate_hw
phy_reset_problem_count target_port_protocols
sas_phy/phy-0-0:11:
device invalid_dword_count maximum_linkrate_hw
negotiated_linkrate running_disparity_error_count uevent
device_type loss_of_dword_sync_count minimum_linkrate
phy_identifier sas_address
initiator_port_protocols maximum_linkrate minimum_linkrate_hw
phy_reset_problem_count target_port_protocols
sas_phy/phy-0-0:12:
device invalid_dword_count maximum_linkrate_hw
negotiated_linkrate running_disparity_error_count uevent
device_type loss_of_dword_sync_count minimum_linkrate
phy_identifier sas_address
initiator_port_protocols maximum_linkrate minimum_linkrate_hw
phy_reset_problem_count target_port_protocols
sas_phy/phy-0-0:2:
device invalid_dword_count maximum_linkrate_hw
negotiated_linkrate running_disparity_error_count uevent
device_type loss_of_dword_sync_count minimum_linkrate
phy_identifier sas_address
initiator_port_protocols maximum_linkrate minimum_linkrate_hw
phy_reset_problem_count target_port_protocols
sas_phy/phy-0-0:3:
device invalid_dword_count maximum_linkrate_hw
negotiated_linkrate running_disparity_error_count uevent
device_type loss_of_dword_sync_count minimum_linkrate
phy_identifier sas_address
initiator_port_protocols maximum_linkrate minimum_linkrate_hw
phy_reset_problem_count target_port_protocols
sas_phy/phy-0-0:4:
device invalid_dword_count maximum_linkrate_hw
negotiated_linkrate running_disparity_error_count uevent
device_type loss_of_dword_sync_count minimum_linkrate
phy_identifier sas_address
initiator_port_protocols maximum_linkrate minimum_linkrate_hw
phy_reset_problem_count target_port_protocols
sas_phy/phy-0-0:5:
device invalid_dword_count maximum_linkrate_hw
negotiated_linkrate running_disparity_error_count uevent
device_type loss_of_dword_sync_count minimum_linkrate
phy_identifier sas_address
initiator_port_protocols maximum_linkrate minimum_linkrate_hw
phy_reset_problem_count target_port_protocols
sas_phy/phy-0-0:6:
device invalid_dword_count maximum_linkrate_hw
negotiated_linkrate running_disparity_error_count uevent
device_type loss_of_dword_sync_count minimum_linkrate
phy_identifier sas_address
initiator_port_protocols maximum_linkrate minimum_linkrate_hw
phy_reset_problem_count target_port_protocols
sas_phy/phy-0-0:7:
device invalid_dword_count maximum_linkrate_hw
negotiated_linkrate running_disparity_error_count uevent
device_type loss_of_dword_sync_count minimum_linkrate
phy_identifier sas_address
initiator_port_protocols maximum_linkrate minimum_linkrate_hw
phy_reset_problem_count target_port_protocols
sas_phy/phy-0-0:8:
device invalid_dword_count maximum_linkrate_hw
negotiated_linkrate running_disparity_error_count uevent
device_type loss_of_dword_sync_count minimum_linkrate
phy_identifier sas_address
initiator_port_protocols maximum_linkrate minimum_linkrate_hw
phy_reset_problem_count target_port_protocols
sas_phy/phy-0-0:9:
device invalid_dword_count maximum_linkrate_hw
negotiated_linkrate running_disparity_error_count uevent
device_type loss_of_dword_sync_count minimum_linkrate
phy_identifier sas_address
initiator_port_protocols maximum_linkrate minimum_linkrate_hw
phy_reset_problem_count target_port_protocols
sas_phy/phy-0:1:
device invalid_dword_count maximum_linkrate_hw
negotiated_linkrate running_disparity_error_count uevent
device_type loss_of_dword_sync_count minimum_linkrate
phy_identifier sas_address
initiator_port_protocols maximum_linkrate minimum_linkrate_hw
phy_reset_problem_count target_port_protocols
sas_phy/phy-0:2:
device invalid_dword_count maximum_linkrate_hw
negotiated_linkrate running_disparity_error_count uevent
device_type loss_of_dword_sync_count minimum_linkrate
phy_identifier sas_address
initiator_port_protocols maximum_linkrate minimum_linkrate_hw
phy_reset_problem_count target_port_protocols
sas_phy/phy-0:3:
device invalid_dword_count maximum_linkrate_hw
negotiated_linkrate running_disparity_error_count uevent
device_type loss_of_dword_sync_count minimum_linkrate
phy_identifier sas_address
initiator_port_protocols maximum_linkrate minimum_linkrate_hw
phy_reset_problem_count target_port_protocols
sas_phy/phy-0:4:
device invalid_dword_count maximum_linkrate_hw
negotiated_linkrate running_disparity_error_count uevent
device_type loss_of_dword_sync_count minimum_linkrate
phy_identifier sas_address
initiator_port_protocols maximum_linkrate minimum_linkrate_hw
phy_reset_problem_count target_port_protocols
sas_phy/phy-0:5:
device invalid_dword_count maximum_linkrate_hw
negotiated_linkrate running_disparity_error_count uevent
device_type loss_of_dword_sync_count minimum_linkrate
phy_identifier sas_address
initiator_port_protocols maximum_linkrate minimum_linkrate_hw
phy_reset_problem_count target_port_protocols
sas_phy/phy-0:6:
device invalid_dword_count maximum_linkrate_hw
negotiated_linkrate running_disparity_error_count uevent
device_type loss_of_dword_sync_count minimum_linkrate
phy_identifier sas_address
initiator_port_protocols maximum_linkrate minimum_linkrate_hw
phy_reset_problem_count target_port_protocols
sas_phy/phy-0:7:
device invalid_dword_count maximum_linkrate_hw
negotiated_linkrate running_disparity_error_count uevent
device_type loss_of_dword_sync_count minimum_linkrate
phy_identifier sas_address
initiator_port_protocols maximum_linkrate minimum_linkrate_hw
phy_reset_problem_count target_port_protocols
sas_port:
port-0:0 port-0:0:0 port-0:0:1 port-0:0:2 port-0:0:3 port-0:0:4
sas_port/port-0:0:
device num_phys uevent
sas_port/port-0:0:0:
device num_phys uevent
sas_port/port-0:0:1:
device num_phys uevent
sas_port/port-0:0:2:
device num_phys uevent
sas_port/port-0:0:3:
device num_phys uevent
sas_port/port-0:0:4:
device num_phys uevent
next prev parent reply other threads:[~2006-05-31 22:00 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-05-31 4:09 [PATCH] aic94xx: make use of the new sas_port James Bottomley
2006-05-31 19:46 ` Alexis Bruemmer
2006-05-31 20:57 ` James Bottomley
2006-05-31 22:00 ` Alexis Bruemmer [this message]
2006-05-31 22:11 ` James Bottomley
2006-05-31 21:32 ` Douglas Gilbert
2006-05-31 22:30 ` Alexis Bruemmer
2006-05-31 22:37 ` James Bottomley
2006-05-31 23:16 ` Alexis Bruemmer
2006-06-01 16:21 ` Douglas Gilbert
2006-06-01 21:40 ` James Bottomley
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=1149112802.7543.83.camel@localhost.localdomain \
--to=alexisb@us.ibm.com \
--cc=James.Bottomley@SteelEye.com \
--cc=linux-scsi@vger.kernel.org \
/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