[ofa-general] Non-Signaled RDMA Read (cxgb3)

Steve Wise swise at opengridcomputing.com
Tue Jul 29 09:32:27 PDT 2008


Steve Wise wrote:
> Roland Dreier wrote:
>>  > I am trying to post a non-signaled RDMA Read WR. Somehow OFED 1.3 
>> running  > on a T3 Chelsio Adapter seems
>>  > not to care what I set for 'enum ibv_send_flags' in my 'struct  > 
>> ibv_send_wr'. I always get a work completion with status
>>  > set to IBV_WC_SUCCESS and opcode IBV_WC_RDMA_READ. When creating 
>> the  > 'struct ibv_qp' I have set
>>  > 'sq_sig_all = 0' in 'struct ibv_qp_init_attr'. With RDMA Write and 
>> Send I  > do not get a WC when I set the 'ibv_send_flags'
>>  > to 0.
>>  >  > What am I missing here?
>>
>> Looks like you're hitting this -- the cxgb3 driver has:
>>
>>                 case IB_WR_RDMA_READ:
>>                         t3_wr_opcode = T3_WR_READ;
>>                         t3_wr_flags = 0; /* T3 reads are always 
>> signaled */
>>
>> so I guess the HW can't do unsignaled RDMA reads.
>>
>>  - R.
>>   
> Right.  This is a T3 hw limitation.  It will be fixed in the next chip.
>
> Steve.
>
>
Note that I _could_ add code in the driver/lib poll routine to "eat" 
these cqes.  But there is a fundamental problem in that if the CQ is 
armed, then the HW _will_ generate an interrupt in this case.  This 
leads to a "false notification" which breaks the semantics of the 
notification mechanism.  I'm not sure how bad that is?  To the 
application, it would receive a notification, then go poll and get nothing.

Steve.



More information about the general mailing list