<br><tt><font size=2>> > what is the correct way to get completions
from the CQ without missing <br>
> > any?<br>
> > I am currently using two separate CQs for the SQ and for the
RQ.<br>
> > In pseudocode I do about the following to wait for a completion:<br>
> ><br>
> > ibv_get_cq_event(channel, &dst_cq, &ctx);    
   //blocking wait for <br>
> > CQ event<br>
> > <-- EVENT --><br>
> > ibv_req_notify_cq(dst_cq, 0);          
             // request event <br>
> > for next completion<br>
> > ibv_poll_cq(dest_cq, 1, wc);          
             // get the WC from <br>
> > the CQ<br>
> > ibv_ack_cq_events(dst_cq, 1);          
             // ack the event<br>
> ></font></tt>
<br><tt><font size=2><br>
< snip ><br>
</font></tt>
<br><tt><font size=2>> <br>
> you need to poll the cq until it is empty instead of just polling
once.<br>
> <br>
> <br>
> get_cq_event()<br>
> req_notify_cq()<br>
> do {<br>
>     ne = poll_cq();<br>
> } while (ne != 0);<br>
> ack_cq_event()<br>
</font></tt>
<br><tt><font size=2>But what if I am just interested in the next work
completion? Wouldn't this mean</font></tt>
<br><tt><font size=2>that I have to build a queue in my application, that
can hold completions in which</font></tt>
<br><tt><font size=2>I am not yet interested? It sounds like a replication
of the completion queue to me.</font></tt>
<br><tt><font size=2>I was more looking for a way to do the 'single poll'
on the completion without copying</font></tt>
<br><tt><font size=2>anything into another queue.</font></tt>
<br>
<br><tt><font size=2>Many thanks,</font></tt>
<br><tt><font size=2> Philip</font></tt>