[ofw] WinVerbs CQ events

prasanna prasanna.vv at oracle.com
Thu Mar 25 05:15:04 PDT 2010


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: 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