[ofa-general] Problem with latest OFED 1.3 build... IPoIB and iPATH

Ralph Campbell ralph.campbell at qlogic.com
Fri Feb 8 13:32:10 PST 2008


On Fri, 2008-02-08 at 11:53 -0800, Shirley Ma wrote:
> Hello Ralph,
> 
> In ipoib, priv->local_lid was set here:
> {
> struct ib_port_attr attr;
> 
> if (!ib_query_port(priv->ca, priv->port, &attr))
> priv->local_lid = attr.lid;
> }

Yes, but this is called via a workqueue thread after
ipoib_ib_dev_open() is called.
The recent change to call create_own_ah() in ipoib_ib_dev_open()
is why ib_create_ah() is now failing and why local_lid is zero.

> If you look at ipath_query_port(),
> 
> static int ipath_query_port(struct ib_device *ibdev,
> u8 port, struct ib_port_attr *props)
> {
> struct ipath_ibdev *dev = to_idev(ibdev);
> enum ib_mtu mtu;
> u16 lid = dev->dd->ipath_lid;
> u64 ibcstat;
> 
> memset(props, 0, sizeof(*props));
> >> props->lid = lid ? lid : __constant_be16_to_cpu(IB_LID_PERMISSIVE);
> 
> attr.lid is set here. Do you have any clue it was set to 0? I don't
> see any code changes between RC3 and RC4 in IPoIB in this piece of
> code.
> 
> I also found below code in ipath. Is there any issue here in
> ipath_query_port()? Since we do enable 4K MTU support.
> 
> /*
> * Note: the chips support a maximum MTU of 4096, but the driver
> * hasn't implemented this feature yet, so set the maximum value
> * to 2048.
> */
> props->max_mtu = IB_MTU_2048;
> switch (dev->dd->ipath_ibmtu) {
> case 4096:
> mtu = IB_MTU_4096;
> break;
> ...

At the time this was written, we didn't have 4K MTU capable
switches for testing.  Now that we do, we have newer ib_ipath code
supporting 4K MTUs.  We are in the process of updating the OFED code
to match our local changes.




More information about the general mailing list