Hi Leonid, I see errors in ibv_post_send() in the client side. But when I kill the client program, the receiver side CQ hander is signaled and subsequent ibv_poll_cq(..) returns WCs with status IBV_WC_WR_FLUSH_ERR for the ibv_post_recv() waiting to receive packet . So, I would like to fix the post send issue first before debugging this further.
Thanks, Prasanna On 3/25/2010 4:48 PM, Leonid Keller wrote: > 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: [email protected] >> [mailto:[email protected]] On Behalf Of Tzachi Dar >> Sent: Wednesday, March 24, 2010 2:20 PM >> To: prasanna; [email protected] >> 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: [email protected] >>> [mailto:[email protected]] On Behalf Of prasanna >>> Sent: Wednesday, March 24, 2010 1:36 PM >>> To: [email protected] >>> 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 >>> [email protected] >>> http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw >>> >>> >> _______________________________________________ >> ofw mailing list >> [email protected] >> http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw >> _______________________________________________ ofw mailing list [email protected] http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw
