[ofa-general] Re: [PATCH] ipoib - scatter/gather suopport

Roland Dreier rdreier at cisco.com
Tue Aug 14 21:12:25 PDT 2007


 > +		priv->dev->features |= NETIF_F_HIGHDMA | NETIF_F_SG;

Does this accomplish anything?  I would think the code in
net/core/dev.c below would just remove NETIF_F_SG immediately:

	if ((dev->features & NETIF_F_SG) &&
	    !(dev->features & NETIF_F_ALL_CSUM)) {
		printk(KERN_NOTICE "%s: Dropping NETIF_F_SG since no checksum feature.\n",
		       dev->name);
		dev->features &= ~NETIF_F_SG;
	}

so is there any point to this change?

 > -			.max_send_sge = 1,
 > +			.max_send_sge = MAX_SKB_FRAGS + 1,

this makes WQEs much bigger -- do we want to do this for all devices?
Or is it going to hurt on something like Tavor, which doesn't do
checksum offload and hence can't take advantage of scatter/gather
anyway?

 > --- linux-2.6.23-rc1.orig/drivers/infiniband/ulp/ipoib/ipoib_cm.c	2007-08-02 11:44:43.000000000 +0300
 > +++ linux-2.6.23-rc1/drivers/infiniband/ulp/ipoib/ipoib_cm.c	2007-08-02 14:31:02.000000000 +0300
 > @@ -495,8 +495,8 @@ static inline int post_send(struct ipoib
 >  {
 >  	struct ib_send_wr *bad_wr;
 >  
 > -	priv->tx_sge.addr             = addr;
 > -	priv->tx_sge.length           = len;
 > +	priv->tx_sge[0].addr          = addr;
 > +	priv->tx_sge[0].length        = len;

Can't connected mode destinations get multi-fragment skbs to send too?
In fact it's much more likely given the bigger MTU, although given
that we don't have checksum offload for RC sends, we might not be able
to enable scatter/gather and CM at the same time.

 - R.



More information about the general mailing list