git.samba.org
/
metze
/
samba
/
wip.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
bd9aa6a
)
rdma
author
Stefan Metzmacher
<metze@samba.org>
Mon, 17 Sep 2012 03:05:46 +0000
(
05:05
+0200)
committer
Stefan Metzmacher
<metze@samba.org>
Tue, 18 Sep 2012 03:10:25 +0000
(
05:10
+0200)
libcli/smb/smb_transport_direct.c
patch
|
blob
|
history
diff --git
a/libcli/smb/smb_transport_direct.c
b/libcli/smb/smb_transport_direct.c
index e6f5f2e1ac5884841a333915fdf751861cb042a5..e0c63fd3503ece0b1ad7e5773e450432454ba796 100644
(file)
--- a/
libcli/smb/smb_transport_direct.c
+++ b/
libcli/smb/smb_transport_direct.c
@@
-253,8
+253,8
@@
static void smb_direct_rdma_connect_handler(struct tevent_context *ev,
ZERO_STRUCT(init_attr);
init_attr.cap.max_send_wr = 16;
init_attr.cap.max_recv_wr = 2;
ZERO_STRUCT(init_attr);
init_attr.cap.max_send_wr = 16;
init_attr.cap.max_recv_wr = 2;
- init_attr.cap.max_recv_sge =
1
;
- init_attr.cap.max_send_sge =
1
;
+ init_attr.cap.max_recv_sge =
2
;
+ init_attr.cap.max_send_sge =
2
;
init_attr.qp_type = IBV_QPT_RC;
state->t->ibv.cq = ibv_create_cq(state->t->rdma.cm_id->verbs,
init_attr.qp_type = IBV_QPT_RC;
state->t->ibv.cq = ibv_create_cq(state->t->rdma.cm_id->verbs,
@@
-358,10
+358,7
@@
struct smb_direct_negotiate_state {
struct {
uint8_t buffer[0x14];
struct ibv_mr *mr;
struct {
uint8_t buffer[0x14];
struct ibv_mr *mr;
-/* uint8_t buffer2[0x14];
- struct ibv_mr *mr2;
- struct ibv_sge sge[2];
-*/ struct ibv_sge sge[1];
+ struct ibv_sge sge[1];
struct ibv_send_wr wr;
} req;
struct {
struct ibv_send_wr wr;
} req;
struct {
@@
-436,20
+433,17
@@
struct tevent_req *smb_direct_negotiate_send(TALLOC_CTX *mem_ctx,
return tevent_req_post(req, ev);
}
return tevent_req_post(req, ev);
}
-
/*
state->req.mr2 = ibv_reg_mr(transport->ibv.pd,
+
state->req.mr2 = ibv_reg_mr(transport->ibv.pd,
state->req.buffer2,
sizeof(state->req.buffer2),
IBV_ACCESS_LOCAL_WRITE);
if (tevent_req_nomem(state->req.mr2, req)) {
return tevent_req_post(req, ev);
}
state->req.buffer2,
sizeof(state->req.buffer2),
IBV_ACCESS_LOCAL_WRITE);
if (tevent_req_nomem(state->req.mr2, req)) {
return tevent_req_post(req, ev);
}
-
*/
state->req.sge[0].addr = (uint64_t) (uintptr_t) state->req.buffer;
+
state->req.sge[0].addr = (uint64_t) (uintptr_t) state->req.buffer;
state->req.sge[0].length = sizeof(state->req.buffer);
state->req.sge[0].lkey = state->req.mr->lkey;
state->req.sge[0].length = sizeof(state->req.buffer);
state->req.sge[0].lkey = state->req.mr->lkey;
-/* state->req.sge[1].addr = (uint64_t) (uintptr_t) state->req.buffer2;
- state->req.sge[1].length = sizeof(state->req.buffer2);
- state->req.sge[1].lkey = state->req.mr2->lkey;
-*/ state->req.wr.opcode = IBV_WR_SEND;
+ state->req.wr.opcode = IBV_WR_SEND;
state->req.wr.send_flags = IBV_SEND_SIGNALED;
state->req.wr.sg_list = state->req.sge;
state->req.wr.num_sge = ARRAY_SIZE(state->req.sge);
state->req.wr.send_flags = IBV_SEND_SIGNALED;
state->req.wr.sg_list = state->req.sge;
state->req.wr.num_sge = ARRAY_SIZE(state->req.sge);