On Tue, Apr 30, 2013 at 12:04:25PM +0300, Shlomo Pongratz wrote:

> >And.. 'tss_qpn_mask_sz' seems unnecessarily limiting, using
> >  WC.srcQPN + ipoib_header.tss_qpn_offset == real QPN
> >  (ie use a signed offset, not a mask)
> >Seems much better than
> >  Wc.srcQPN & ~((1<<(ipoib_header.tss_qpn_mask_sz >> 12))-1) == real QPN
> >  (Did I even get that right?)

> Your suggestion could have been valid if the the IPoIB header was larger.
> Please note that the a QPN occupies 3 octets and thus its value lies
> in the range of [0..0xFFFFFF].

I am aware of this, and it isn't really a problem, adaptors that
allocate randomly across the entire QPN space would not be compatible
with this approach, but most adaptors allocate QPNs
quasi-contiguously.

Basically, at startup, IPoIB would allocate a TX QP, then allocate TSS
QPs, and throw away any that can't fit in the encoding, until it
reaches the target number or tries too long. No need for a special API
to the driver.

Jason
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to