[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