lihaidong wrote:
> If I use send/recv operations to send the two arbitrary regions form A
> to B.How about the data order?
> I mean
> for side A
> sge[0] = {A_vec1_addr,A_vec1_len, A_lkey}
> sge[1] = {A_vec2_addr,A_vec2_len, A_lkey}
> ib_send_wr.sg_list = sge;
> for side B
> sge[0] = {B_vec1_addr,B_vec1_len, B_lkey}
> sge[1] = {B_vec2_addr,B_vec2_len, B_lkey}
> ib_recv_wr.sg_list = sge;
> Does lower level layers ensure that data in vec1 in A would be placed
> to vec1 in B and vec2(A) to vec2(B)?Yes. as long as the lengths match. IE on the recv side, the data is placed into the receive buffer in sge order based on lengths. So if A's sge[0] was 100 bytes and sge[1] 10 bytes, and B's recv sge[0] was 110 bytes, all the 110 bytes would be placed in B's recv sge[0]. > According to krping and my experience, to use send/recv operations, I > have to convert host byte order to net byte order when preparing > send_buf, and convert back to host byte order when recv_buf's data is > ready.Yet, RDMA Read/Write does not has this overhead,right? I don't really understand this question: If you're talking about payload data, then you don't need to do conversions if both hosts are the same byte order. Steve. -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
