<html><body>
<p><tt>Roland Dreier <rdreier@cisco.com> wrote on 06/25/2008 01:04:14 PM:<br>
</tt><br>
<tt>> Is there a missing "not" somewhere here?  If all CQEs for QP300 are in<br>
> the recv CQ at the time that the last WQE reached event is handled, then<br>
> since the drain WQE is posted to QP200 after that event, all the QP300<br>
> CQEs will be handled before the completion for the drain WQE completion<br>
> is handled.<br>
> <br>
> It seems that the problem is the following happening (HCA: entries are<br>
> done by HCA hw, CPU entry is what our code does):<br>
> <br>
>    HCA: QP200 last WQE reached event generated<br>
>    HCA: QP300 last WQE reached event generated<br>
>    CPU: post QP200 drain WQE<br>
>    HCA: drain WQE completes, add CQE to CQ for it<br>
>    HCA: add CQE to CQ for QP300 receive completion (probably flush err)<br>
> <br>
> Is that right?<br>
</tt><br>
<tt>Yes.</tt><br>
<tt> <br>
> What HCA is this happening with?<br>
<br>
I saw the panic on mthca. I guess that's what happened from the code review only.</tt><br>
<br>
<tt>Thanks</tt><br>
<tt>Shirley</tt></body></html>