diff --git a/src/msgr_rdma.cpp b/src/msgr_rdma.cpp index e1ae1529..7dd64f20 100644 --- a/src/msgr_rdma.cpp +++ b/src/msgr_rdma.cpp @@ -411,6 +411,12 @@ bool osd_messenger_t::connect_rdma_client(osd_client_t *cl, json11::Json rdma_ad static void try_send_rdma_wr(msgr_rdma_connection_t *rc, uint64_t wr_id, ibv_sge *sge, int op_sge) { + timespec tv; + clock_gettime(CLOCK_REALTIME, &tv); + uint64_t total = 0; + for (int i = 0; i < op_sge; i++) + total += sge[i].length; + printf("%lu.%09lu RDMA send to queue %d: %lu bytes\n", tv.tv_sec, tv.tv_nsec, rc->qp->qp_num, total); ibv_send_wr *bad_wr = NULL; ibv_send_wr wr = { .wr_id = wr_id, @@ -430,6 +436,12 @@ static void try_send_rdma_wr(msgr_rdma_connection_t *rc, uint64_t wr_id, ibv_sge static void try_recv_rdma_wr(msgr_rdma_connection_t *rc, uint64_t wr_id, ibv_sge *sge, int op_sge) { + timespec tv; + clock_gettime(CLOCK_REALTIME, &tv); + uint64_t total = 0; + for (int i = 0; i < op_sge; i++) + total += sge[i].length; + printf("%lu.%09lu RDMA receive from queue %d: %lu bytes\n", tv.tv_sec, tv.tv_nsec, rc->qp->qp_num, total); ibv_recv_wr *bad_wr = NULL; ibv_recv_wr wr = { .wr_id = wr_id, @@ -783,6 +795,7 @@ void osd_messenger_t::handle_rdma_events() ibv_cq *ev_cq; void *ev_ctx; // FIXME: This is inefficient as it calls read()... + timespec tv; if (ibv_get_cq_event(rdma_context->channel, &ev_cq, &ev_ctx) == 0) { ibv_ack_cq_events(rdma_context->cq, 1); @@ -826,6 +839,16 @@ void osd_messenger_t::handle_rdma_events() exit(1); } auto rc = cl->rdma_queues[q]; + if (is_send) + { + clock_gettime(CLOCK_REALTIME, &tv); + printf("%lu.%09lu Done RDMA send on queue %d\n", tv.tv_sec, tv.tv_nsec, wc[i].qp_num); + } + else + { + clock_gettime(CLOCK_REALTIME, &tv); + printf("%lu.%09lu Done RDMA recv on queue %d, %d bytes\n", tv.tv_sec, tv.tv_nsec, wc[i].qp_num, wc[i].byte_len); + } if (!is_send) { rc->cur_recv--;