[openib-general] Question On mad.c
mshefty at ichips.intel.com
Fri Jan 20 09:28:54 PST 2006
Devesh Sharma wrote:
> In mad.c while calling ib_post_receive() operation
> spin_lock_irqsave(&recv_queue->lock, flags);
> post = (++recv_queue->count < recv_queue->max_active);
> list_add_tail(&mad_priv->header.mad_list.list, &recv_queue->list);
> spin_unlock_irqrestore(&recv_queue->lock, flags);
> ret = ib_post_recv(qp_info->qp, &recv_wr, &bad_recv_wr);
> This is in while loop till "post" variable remains true, value of
> max_active is 512 So loop will go 512 times.
> If the qp on which this posting is going on dose not supports 512
> recevie descriptors posting then what will happen?
> Although during qp creation max_recv supported will be returned but
> loop is independent of this.
The QP is created with a size of IB_MAD_QP_RECV_SIZE (512). If the hardware
cannot support this size of a QP, then the create QP call will fail. I.e. the
hardware can provide a QP that is larger, but not smaller. The code cannot
adjust to using a larger size without resizing the corresponding CQ, which is
not yet supported.
More information about the general