<br><font size=2><tt>Roland Dreier <rdreier@cisco.com> wrote on 05/24/2006
01:50:37 PM:<br>
<br>
> NAK to this patch.  Not only is is a step backwards in performance
--<br>
> you've essentially added two (expensive) atomic operations for every<br>
> packet sent </tt></font>
<br>
<br><font size=2><tt>My observation is the atomic operation is not that
expensive.</tt></font>
<br>
<br><font size=2><tt>> -- but the patch is actually wrong:<br>
> <br>
>  > +       err = post_send(priv, priv->tx_head
& (ipoib_sendq_size - 1), <br>
>  > +                
      address->ah, qpn, addr, skb->len); <br>
>  > +       kref_put(&address->ref, ipoib_free_ah);<br>
> <br>
> The whole point of the complexity in AH handling in IPoIB is that
AHs<br>
> cannot be freed until the driver knows that all sends referring to<br>
> them have _completed_.  As you've written your patch, an AH can
easily<br>
> be freed before the HCA has a chance to execute the corresponding
send<br>
> request.<br>
> <br>
>  - R.</tt></font>
<br>
<br><font size=2 face="sans-serif">I thought the path holding another AH
reference to prevent it to be freed?<br>
</font>
<br><font size=2 face="sans-serif">Thanks<br>
Shirley Ma<br>
IBM Linux Technology Center<br>
15300 SW Koll Parkway<br>
Beaverton, OR 97006-6063<br>
Phone(Fax): (503) 578-7638<br>
<br>
</font>
<br>
<br><font size=2><tt><br>
</tt></font>