[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <6E6072BD03F348168F749B19B2BA90D3@usish.com.cn>
Date: Thu, 16 Jun 2011 16:11:57 +0800
From: "Jack Wang" <jack_wang@...sh.com>
To: "'Xiangliang Yu'" <yuxiangl@...vell.com>,
"'James Bottomley'" <James.Bottomley@...senPartnership.com>
Cc: <yxlraid@...il.com>, <lucas.demarchi@...fusion.mobi>,
<maciej.trela@...el.com>, <dan.j.williams@...el.com>,
<linux-scsi@...r.kernel.org>, <linux-kernel@...r.kernel.org>,
"'Jacky Feng'" <jfeng@...vell.com>
Subject: Re: [PATCH] [SCSI] LIBSAS: fix libsas link error issue
> >> > >[Jack Wang]
> >> > >I don't think the statement below is error:
> >> > >child->linkrate = min(parent_phy->linkrate, child->max_linkrate);
> >>
> >> The parent_phy is same to child_phy, I don't think it's right.
> >>
> >[Jack Wang] The parent_phy->linkrate is report from DISCOVER response as
> >negotiated link rate(parent phy with child phy), so same is right.
>
> Parent_phy = &parent->ex_dev.ex_phy[phy_id]; (sas_ex_discover_expander)
> struct expander_device *parent_ex = &parent->ex_dev;(sas_ex_get_linkrate)
> struct ex_phy *phy = &parent_ex->ex_phy[i];
> so, parent_phy and phy are same one variable.
>
> >> >> Yes, you can test like this.
> >> >> >Then expander1's linkrate will set to 3G, and expander2's linkrate
> will
> >> set
> >> >> >to 6G, that is correct.
> >> >> yes
> >> >> > But the connection rate will be 3G from hba to
> >> >> >expander2.
> >> >> How to configure the connection rate?
> >> >> Now, MVSAS driver get 6G from sas_ex_get_linkrate function, and set
> >> linkrate
> >> >> of OPEN address frame to the value. right?
> >> >>
> >> >> --
> >> >[Jack Wang]
> >> >Connection rate is auto, link layer will insert deletable primitives
to
> do
> >> >rate matching (sas2r15 7.14).
> >>
> >> >Yes, you should set the linkrate to that value .
> >>
> >> OK.MVSAS driver seem right. But, the problem is command fail because of
> link
> >> error, that is why I commit this patch. And my patch work fine.
> >> You can reproduce the issue and fix it. Thanks!
> >[Jack Wang] I re-consider it , you maybe should compare the HBA linkrate
> >with the child phy linkrate and chose a minor.
>
> Yes, how about this:
> - child->linkrate = min(parent_phy->linkrate, child->max_linkrate);
> + child->linkrate = min(parent->max_linkrate, child->max_linkrate);
> The max link rate of parent have HBA link rate info:
> dev->max_linkrate = port->linkrate; (in sas_get_port_device function).
[Jack Wang]
No, I mean you when you set connection rate in OPEN Address frame, you
compare your HBA linkrate with the linkrate of the phy you want to open, and
chose the minor.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists