[ofa-general] [RFC] XRC -- make receiving XRC QP independent of any one user process

Jack Morgenstein jackm at dev.mellanox.co.il
Sat Dec 22 00:05:28 PST 2007


On Saturday 22 December 2007 04:51, Tang, Changqing wrote:
> We need to ask Roland to confirm this.
> 
I'll speak to the firmware guys here for clarification.
> 
> 
> I did not use zero byte rdma_read, I only use zero byte rdma_write.
> 
> Here is our code:
> 
>                 sr.next = NULL;
>                 sr.wr_id = (uint64_t)(AULONG)rdmahdr;
> 
>                 sr.sg_list = &ssg;
>                 sr.num_sge = 0;
>                 sr.opcode = IBV_WR_RDMA_WRITE;
>                 sr.send_flags = IBV_SEND_INLINE|IBV_SEND_SIGNALED;
> 
>                 err = ibv_post_send(ibvproc->connection[i].qp_hndl, &sr, &bad_sr);
>                 if (err != 0) {
>                         hpmp_printf("ibv_post_send() failed");
>                         return (-1);
>                 }
> 
> Note, ssg is not initialized (Maybe we can set sr.sg_list = NULL ?)
You don't need to initialize ssg -- you have set num_sge to zero, so sg_list is not relevant.
> 
I notice that the rdma fields are also not initialized. 
That implies that no validity checking is done on the remote host side once
the length is zero.

I just looked at the ConnectX PRM, revision 0.35, section 8.4.1.11.  It specifically addresses the issue of
sending 0-byte RDMA reads/writes: send a wqe with NO data segments, and you will get a 0-length RDMA-write.
However, it does not mention whether the remote address and rkey provided in the WQE must be valid or not.

I'll check with F/W regarding this issue, too.

- Jack



More information about the general mailing list