[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