<br><font size=2 face="sans-serif">Hello,</font>
<br>
<br><font size=2 face="sans-serif">what is the correct way to get completions
from the CQ without missing any?<br>
I am currently using two separate CQs for the SQ and for the RQ.</font>
<br><font size=2 face="sans-serif">In pseudocode I do about the following
to wait for a completion:</font>
<br>
<br><font size=2 face="sans-serif">ibv_get_cq_event(channel, &dst_cq,
&ctx);        //blocking wait for CQ event</font>
<br><font size=2 face="sans-serif"><-- EVENT --></font>
<br><font size=2 face="sans-serif">ibv_req_notify_cq(dst_cq, 0);  
               
     // request event for next completion</font>
<br><font size=2 face="sans-serif">ibv_poll_cq(dest_cq, 1, wc);  
               
     // get the WC from the CQ</font>
<br><font size=2 face="sans-serif">ibv_ack_cq_events(dst_cq, 1);  
               
     // ack the event</font>
<br>
<br><font size=2 face="sans-serif">It might now happen on the RQ, that
two consecutive inbound sends consume</font>
<br><font size=2 face="sans-serif">receive WRs and therefore generate two
WCs on the RQ. If the second is generated</font>
<br><font size=2 face="sans-serif">before I get the first one, I will miss
it and wait infinitely long for it since I already got the event</font>
<br><font size=2 face="sans-serif">but that event does not tell me how
many WCs are pending on the respective CQ.</font>
<br>
<br><font size=2 face="sans-serif">One way to handle this issue would be
to do an ibv_poll_cq() before waiting for the event</font>
<br><font size=2 face="sans-serif">in case there is something on the CQ
for which I missed the event.</font>
<br>
<br><font size=2 face="sans-serif">Is there a more elegant way to get all
events pending on the CQ or find out how many</font>
<br><font size=2 face="sans-serif">completions are pending? I could also
do a ibv_poll_cq() and request say 10 completions</font>
<br><font size=2 face="sans-serif">and see how many I got but that is kind
of a hack...</font>
<br>
<br>
<br><font size=2 face="sans-serif">Many thanks for your advice,</font>
<br><font size=2 face="sans-serif"> Philip</font>