public inbox for linux-scsi@vger.kernel.org
 help / color / mirror / Atom feed
From: John Garry <john.g.garry@oracle.com>
To: "Li, Eric (Honggang)" <Eric.H.Li@Dell.com>,
	Jason Yan <yanaijie@huawei.com>,
	"james.bottomley@hansenpartnership.com"
	<James.Bottomley@HansenPartnership.com>,
	"Martin K . Petersen" <martin.petersen@oracle.com>
Cc: "linux-scsi@vger.kernel.org" <linux-scsi@vger.kernel.org>
Subject: Re: Issue in sas_ex_discover_dev() for multiple level of SAS expanders in a domain
Date: Tue, 7 May 2024 16:14:53 +0100	[thread overview]
Message-ID: <b82bee4f-67b7-4355-a152-1f13d4918220@oracle.com> (raw)
In-Reply-To: <SJ0PR19MB5415A5F70B0D51BA96CBC76DC4E42@SJ0PR19MB5415.namprd19.prod.outlook.com>

On 07/05/2024 12:17, Li, Eric (Honggang) wrote:
>> Sure, I don't particularly like it as a fix either. But first I would like to get your setup working
>> again to verify that only this needs fixing. Indeed something else may be broken since
>> a1b6fb947f923. In addition, if we need to backport a fix, I would only like to backport a fix for
>> real known broken topologies, and not theoretical issues not experienced.
>>
>> But what exact setup do you have? I am confused, as you seem to be talking about your
>> setup being broken, but then other setup may also being broken, but you don't have access
>> to another setup. What is the other setup?
>>
> This issue was reported by our tester. His setup is
> SAS Controller <--> SAS Expander <--> SAS Expander <--> SAS drives
>                                                                     <--> SAS Expander <--> SAS drives
>                                                                     ......
> When this issue occurred, no SAS drives could be detected.
> As a workaround, I've already added those codes removed by the commit a1b6fb947f923, and at least we could detect the SAS drives.

ok, good to know, but it would be good to confirm that just re-adding 
the code to set phy_state is enough.

> 
> Since our SAS expanders are self-configured, we don't need to explicitly configure the per-PHY routing tables.
> So, I am not sure there is any other issue in this workaround as some per-PHY routing tables are not configured.
> 
>>>> I think the root cause of this issue is the order of function calls
>>>> to
>>>> sas_dev_present_in_domain() and sas_ex_join_wide_port().
>>>> My concern here is whether or not we still need to configure routing
>>>> on the parent SAS expander before calling sas_ex_join_wide_port().
>>>> This part of logic is not present previously and I don't have environment to test this.
>>>>
>>>> Back to your question, I believe we do need to join a wideport to downstream expander.
>>>> Changing the phy_state to PHY_STATE_DISCOVERED will skip scanning
>>>> those PHYs,
>> I would have thought that re-adding the code removed in a1b6fb947f923 to set
>> PHY_STATE_DISCOVERED would only affect the first phy scanned in that wideport. Other
>> phys scanned would have it set through calls to
>> sas_ex_join_wide_port()
>>
> I don't catch your point.
> In my understanding, it would affect the rest PHYs in that wide port, not the first one.
> The first PHY has been scanned/discovered and added to a port (at that time, it is just a narrow port yet).

Agreed

> Call to sas_ex_join_wide_port() makes the rest PHYs associated with that existing port (making it become wideport) and set up sysfs between the PHY and port. > Set PHY_STATE_DISCOVERED would make the rest PHYs not being scanned/discovered again (as this wide port is already scanned).

If you can just confirm that re-adding the code to set phy_state = 
DISCOVERED is good enough to see the SAS disks again, then this can be 
further discussed.

Thanks,
John



  reply	other threads:[~2024-05-07 15:15 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-24  8:59 Issue in sas_ex_discover_dev() for multiple level of SAS expanders in a domain Li, Eric (Honggang)
2024-04-24 10:46 ` John Garry
2024-04-25  2:57   ` Jason Yan
2024-04-25  5:03     ` Li, Eric (Honggang)
2024-04-30 14:22       ` Li, Eric (Honggang)
2024-05-01 14:23         ` John Garry
2024-05-03  3:15           ` Li, Eric (Honggang)
2024-05-03  8:33             ` John Garry
2024-05-06  1:49               ` Li, Eric (Honggang)
2024-05-07  8:03                 ` John Garry
2024-05-07  8:44                 ` Li, Eric (Honggang)
2024-05-07  9:17                   ` John Garry
2024-05-07 11:17                     ` Li, Eric (Honggang)
2024-05-07 15:14                       ` John Garry [this message]
2024-05-08  0:59                         ` Li, Eric (Honggang)
2024-05-08  7:48                           ` John Garry
2024-05-08  8:29                             ` Li, Eric (Honggang)
2024-05-09  3:52                               ` Jason Yan
2024-05-11  3:41                               ` Jason Yan
2024-05-14  9:23                                 ` Li, Eric (Honggang)
2025-06-10 13:05                                   ` Li, Eric (Honggang)
2025-06-10 13:33                                     ` Jason Yan

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=b82bee4f-67b7-4355-a152-1f13d4918220@oracle.com \
    --to=john.g.garry@oracle.com \
    --cc=Eric.H.Li@Dell.com \
    --cc=James.Bottomley@HansenPartnership.com \
    --cc=linux-scsi@vger.kernel.org \
    --cc=martin.petersen@oracle.com \
    --cc=yanaijie@huawei.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