[ofa-general] missed cq event
Philip Frey1
PHF at zurich.ibm.com
Mon Jun 9 08:40:59 PDT 2008
You are right. Thanks!
I have yet another issue:
Sometimes I get the following message in /var/log/messages of the local
host:
post_qp_event - AE qpid 0x4e0 opcode 3 status 0x13 type 0 wrid.hi 0x0
wrid.lo 0x65000000
I was looking for the status and opcode in the source and found that
opcode 3 means T3_SEND and status 0x13 means TPT_ERR_OUT_OF_RQE.
At the remote host I get and opcode 7 (T3_TERMINATE) and status 0x0
(SUCCESS).
Clearly there is someone running out of Receive Queue Elements. The error
occurred when
doing an ibv_post_send() at the local host. Is this a coincidence or does
the local host
somehow know that there are not enough RQE's available at the remote host?
In other words,
does the TPT_ERR_OUT_OF_RQE refer to the local or to the remote receive
queue?
Many thanks,
Philip
general-bounces at lists.openfabrics.org wrote on 09.06.2008 15:56:46:
> Philip Frey1 wrote:
> >
> > > > what is the correct way to get completions from the CQ without
> > missing
> > > > any?
> > > > I am currently using two separate CQs for the SQ and for the RQ.
> > > > In pseudocode I do about the following to wait for a completion:
> > > >
> > > > ibv_get_cq_event(channel, &dst_cq, &ctx); //blocking wait
for
> > > > CQ event
> > > > <-- EVENT -->
> > > > ibv_req_notify_cq(dst_cq, 0); // request
event
> > > > for next completion
> > > > ibv_poll_cq(dest_cq, 1, wc); // get the WC
> > from
> > > > the CQ
> > > > ibv_ack_cq_events(dst_cq, 1); // ack the
event
> > > >
> >
> > < snip >
> >
> > >
> > > you need to poll the cq until it is empty instead of just polling
once.
> > >
> > >
> > > get_cq_event()
> > > req_notify_cq()
> > > do {
> > > ne = poll_cq();
> > > } while (ne != 0);
> > > ack_cq_event()
> >
> > But what if I am just interested in the next work completion? Wouldn't
> > this mean
> > that I have to build a queue in my application, that can hold
> > completions in which
> > I am not yet interested? It sounds like a replication of the
> > completion queue to me.
> > I was more looking for a way to do the 'single poll' on the completion
> > without copying
> > anything into another queue.
>
> You can process each polled CQE individually inside the loop, yes? How
> is that different from getting notified of each CQE insertion and
> processing it then?
>
>
> _______________________________________________
> general mailing list
> general at lists.openfabrics.org
> http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general
>
> To unsubscribe, please visit
http://openib.org/mailman/listinfo/openib-general
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openfabrics.org/pipermail/general/attachments/20080609/d21d4992/attachment.html>
More information about the general
mailing list