Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756641Ab1FPIMW (ORCPT ); Thu, 16 Jun 2011 04:12:22 -0400 Received: from sr-smtp.usish.com ([210.5.144.203]:51321 "EHLO sr-smtp.usish.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752045Ab1FPIMU (ORCPT ); Thu, 16 Jun 2011 04:12:20 -0400 From: "Jack Wang" To: "'Xiangliang Yu'" , "'James Bottomley'" Cc: , , , , , , "'Jacky Feng'" References: <1308064628-11826-1-git-send-email-yxlraid@gmail.com> <1308065367.2401.24.camel@mulgrave> <1308117450.2329.31.camel@mulgrave> <637AF86F1A314F15B816411A580575F0@usish.com.cn> <51A55E816E3847EF97FE4E849A572717@usish.com.cn> <4F7167A354D8476AB58FD36CA6321960@usish.com.cn> Subject: Re: [PATCH] [SCSI] LIBSAS: fix libsas link error issue Date: Thu, 16 Jun 2011 16:11:57 +0800 Message-ID: <6E6072BD03F348168F749B19B2BA90D3@usish.com.cn> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Office Outlook 11 Thread-Index: AcwrIR/qdpMMo2uOTdi6EtZ/SnmPkgAAZ5KAACgYoPAAAOfC4AABCYdAAABOEGAAA867gAAA6NjQAAMaV6AAAIc6oAABFNUQAACOI5AAAiHGgA== In-Reply-To: X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.6090 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2332 Lines: 59 > >> > >[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@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/