[ofa-general] [PATCH librdmacm] rping: Transfer rkey/addr/len information in network byte order.
Steve Wise
swise at opengridcomputing.com
Thu May 3 09:58:12 PDT 2007
Hey,
We need this in -rc3.
Steve.
On Wed, 2007-05-02 at 09:56 -0500, Steve Wise wrote:
> On Tue, 2007-05-01 at 21:01 -0700, Sean Hefty wrote:
> > > This patch regresses rping. I failed to test it on AMD64<->AMD64 (ie
> > > like endian systems). I will provide another patch shortly, or we can
> > > undo the broken rping patch for -rc3. Whatever you think is best.
> >
> > Let's fix it. Please create a patch on top of this that fixes the problem.
> >
> > Thanks
> >
> > - Sean
>
> Here is the fix. Tested with:
>
> ppc64 client, amd64 server
> ppc64 server, amd64 client
> amd64 client, amd64 server
>
>
> ---
>
> Fix regression introduced by 88fc0cb21698dfb5d7660eecf7dddd0531fc8021.
>
> From: Steve Wise <swise at opengridcomputing.com>
>
> - swizzle memory info when sending it to peer.
> - fixed printf format
>
> Signed-off-by: Steve Wise <swise at opengridcomputing.com>
> ---
>
> examples/rping.c | 10 +++++-----
> 1 files changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/examples/rping.c b/examples/rping.c
> index 17b0000..bccabb0 100644
> --- a/examples/rping.c
> +++ b/examples/rping.c
> @@ -243,7 +243,7 @@ static int server_recv(struct rping_cb *
> cb->remote_rkey = ntohl(cb->recv_buf.rkey);
> cb->remote_addr = ntohll(cb->recv_buf.buf);
> cb->remote_len = ntohl(cb->recv_buf.size);
> - DEBUG_LOG("Received rkey %x addr %" PRIx64 "len %d from peer\n",
> + DEBUG_LOG("Received rkey %x addr %" PRIx64 " len %d from peer\n",
> cb->remote_rkey, cb->remote_addr, cb->remote_len);
>
> if (cb->state <= CONNECTED || cb->state == RDMA_WRITE_COMPLETE)
> @@ -614,12 +614,12 @@ static void rping_format_send(struct rpi
> {
> struct rping_rdma_info *info = &cb->send_buf;
>
> - info->buf = (uint64_t) (unsigned long) buf;
> - info->rkey = mr->rkey;
> - info->size = cb->size;
> + info->buf = htonll((uint64_t) (unsigned long) buf);
> + info->rkey = htonl(mr->rkey);
> + info->size = htonl(cb->size);
>
> DEBUG_LOG("RDMA addr %" PRIx64" rkey %x len %d\n",
> - info->buf, info->rkey, info->size);
> + ntohll(info->buf), ntohl(info->rkey), ntohl(info->size));
> }
>
> static int rping_test_server(struct rping_cb *cb)
>
>
> _______________________________________________
> general mailing list
> general at lists.openfabrics.org
> http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general
>
> To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general
More information about the general
mailing list