[ofa-general] Bogus Receive Completions

Eli Cohen eli at dev.mellanox.co.il
Thu Jan 24 09:18:40 PST 2008


On Thu, 2008-01-24 at 10:01 -0600, Roman Kononov wrote:
> On 2008-01-24 08:18 Eli Cohen said the following:
> > I am re-sending the patches again, this time with the bug of being
> > unable to handle QPs whose receive size is not a power of two fixed.
> 
> .../libmthca/src>egrep '&.*qp->.q\.m.*-' *.c
> qp.c:   ind = qp->sq.head & (qp->sq.max - 1);
> qp.c:   ind = qp->rq.head & (qp->rq.max - 1);
> qp.c:   next->nda_op = htonl(((i + 1) & (qp->rq.max - 1)) <<
> qp.c:   next->nda_op = htonl((((i + 1) & (qp->sq.max - 1)) <<
> 
> Should these change as well?
No, these are for memfree where the driver assures queue sizes are a
power of 2.

> 
> In mthca_create_qp() there are assignments:
> qp->sq.max = align_queue_size(pd->context, attr->cap.max_send_wr, 0);
> qp->rq.max = align_queue_size(pd->context, attr->cap.max_recv_wr, 0);
> And later:
> qp->sq.max = attr->cap.max_send_wr;
> qp->rq.max = attr->cap.max_recv_wr;
> This is suspicious.

I agree this does not look too nice. But going through the code I could
not see how the kernel could return a different value than what it got
from userspace.
Roland what do you think?

> 
> > 
> > Roman,
> > can you tell whether from your perspective there has been an improvement
> > in stability with the latest patches?
> 
> Since I use 'nice' queue sizes, the very last patches made no difference.
> 
I meant to ask whether there was improvement between that time before
the patches were posted to now.




More information about the general mailing list