[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