[ofw] WinVerbs CQ events

Leonid Keller leonid at mellanox.co.il
Thu Mar 25 04:18:02 PDT 2010


Hi Prasanna,

Have you tried to call ibv_poll_cq(..) one more time (better - several times) ?
Maybe at the moment of your poll the second CQE has not yet arrived ?

> -----Original Message-----
> From: ofw-bounces at lists.openfabrics.org 
> [mailto:ofw-bounces at lists.openfabrics.org] On Behalf Of Tzachi Dar
> Sent: Wednesday, March 24, 2010 2:20 PM
> To: prasanna; ofw at openfabrics.org
> Subject: Re: [ofw] WinVerbs CQ events
> 
> If I understand correctly, you do receive both packets but 
> only one CQ event.
> 
> This is by design.
> In order for a CQ to create an event it should be both armed 
> and also have a CQE that one has not polled.
> In other words, once you ask for an event, you will only get 
> one event until you ask for a new event again.
> Once you receive an event their can be many CQE on the CQ.
> 
> In your test, both packets probably arrive "at the same time" 
> on the receiver so you don't have the time to arm again. If 
> you will change your sender to send 2 packets and wait for a 
> second between them you will have a chance in the receiver to 
> get one packet, ask_for_notification and get the second notification.
> 
> Thanks
> Tzachi
> 
> > -----Original Message-----
> > From: ofw-bounces at lists.openfabrics.org 
> > [mailto:ofw-bounces at lists.openfabrics.org] On Behalf Of prasanna
> > Sent: Wednesday, March 24, 2010 1:36 PM
> > To: ofw at openfabrics.org
> > Subject: [ofw] WinVerbs CQ events
> > 
> > Hi All,
> > 
> > I observe a problem getting CQ events in WinVerbs 2.2 for the 
> > following
> > sequence:
> > 
> > 1. Client does a ibv_post_send() operation with a list of 2 
> WRs (The 
> > 'next' field of first struct ibv_send_wr points to the second WR)
> > 
> > 2. Receive program calls ibv_post_recv() twice each with a 
> single WR.
> > 
> > In the above sequence, I see data from both WRs is transferred 
> > correctly from the client to the receiver.
> > But the issue is, CQ event in the receiver is generated only once. 
> > Also, in the receiver CQ event handler, ibv_poll_cq(cq, 2, &wc[0]) 
> > returns 1.
> > 
> > I expect either 2 CQ events in the receive side or
> > ibv_poll_cq(..) should return 2 WCs.
> > I tried both solicited & non-solicited CQ notification in 
> the recevier 
> > side. Also, the CQE is sufficiently large.
> > 
> > Please let me know if you have clue to generate CQ event in the 
> > receiver in this sequence.
> > 
> > Thanks,
> > Prasanna
> > _______________________________________________
> > ofw mailing list
> > ofw at lists.openfabrics.org
> > http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw
> > 
> _______________________________________________
> ofw mailing list
> ofw at lists.openfabrics.org
> http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw
> 


More information about the ofw mailing list