[ofa-general] Re: [RFC][PATCH] last wqe event handler patch

Roland Dreier rdreier at cisco.com
Wed Jun 25 13:04:14 PDT 2008


 > > This is a really good explanation (exactly what I would hope to see in a
 > > changelog).  I'm not positive I understand though: is the issue that
 > > when the QP300 last WQE reached event is seen, we are not guaranteed
 > > that we have handled all CQEs for QP300 yet?

 > Right. We see QP300 last WQE reached event from async event handler, all 
 > remaining cqes for QP300 not being processed are in recv completion queue. 

Is there a missing "not" somewhere here?  If all CQEs for QP300 are in
the recv CQ at the time that the last WQE reached event is handled, then
since the drain WQE is posted to QP200 after that event, all the QP300
CQEs will be handled before the completion for the drain WQE completion
is handled.

It seems that the problem is the following happening (HCA: entries are
done by HCA hw, CPU entry is what our code does):

	HCA: QP200 last WQE reached event generated
	HCA: QP300 last WQE reached event generated
	CPU: post QP200 drain WQE
	HCA: drain WQE completes, add CQE to CQ for it
	HCA: add CQE to CQ for QP300 receive completion (probably flush err)

Is that right?

What HCA is this happening with?

 > When QP300 QP is destroyed within QP200 drain WRs context, not in QP300 
 > drain WR context. There is a window QP300 has been destoryed but some 
 > QP300 cqes might still be in completion queue and not being processed yet.

 - R.



More information about the general mailing list