RPC/RDMA: add data types and new FRMR memory registration enum.
Internal RPC/RDMA structure updates in preparation for FRMR support. Signed-off-by: Tom Talpey <talpey@netapp.com> Acked-by: Tom Tucker <tom@opengridcomputing.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
This commit is contained in:
committed by
Trond Myklebust
parent
8d4ba0347c
commit
fe9053b30b
@@ -78,6 +78,7 @@ enum rpcrdma_memreg {
|
|||||||
RPCRDMA_MEMWINDOWS,
|
RPCRDMA_MEMWINDOWS,
|
||||||
RPCRDMA_MEMWINDOWS_ASYNC,
|
RPCRDMA_MEMWINDOWS_ASYNC,
|
||||||
RPCRDMA_MTHCAFMR,
|
RPCRDMA_MTHCAFMR,
|
||||||
|
RPCRDMA_FRMR,
|
||||||
RPCRDMA_ALLPHYSICAL,
|
RPCRDMA_ALLPHYSICAL,
|
||||||
RPCRDMA_LAST
|
RPCRDMA_LAST
|
||||||
};
|
};
|
||||||
|
@@ -58,6 +58,8 @@ struct rpcrdma_ia {
|
|||||||
struct rdma_cm_id *ri_id;
|
struct rdma_cm_id *ri_id;
|
||||||
struct ib_pd *ri_pd;
|
struct ib_pd *ri_pd;
|
||||||
struct ib_mr *ri_bind_mem;
|
struct ib_mr *ri_bind_mem;
|
||||||
|
u32 ri_dma_lkey;
|
||||||
|
int ri_have_dma_lkey;
|
||||||
struct completion ri_done;
|
struct completion ri_done;
|
||||||
int ri_async_rc;
|
int ri_async_rc;
|
||||||
enum rpcrdma_memreg ri_memreg_strategy;
|
enum rpcrdma_memreg ri_memreg_strategy;
|
||||||
@@ -156,6 +158,10 @@ struct rpcrdma_mr_seg { /* chunk descriptors */
|
|||||||
union {
|
union {
|
||||||
struct ib_mw *mw;
|
struct ib_mw *mw;
|
||||||
struct ib_fmr *fmr;
|
struct ib_fmr *fmr;
|
||||||
|
struct {
|
||||||
|
struct ib_fast_reg_page_list *fr_pgl;
|
||||||
|
struct ib_mr *fr_mr;
|
||||||
|
} frmr;
|
||||||
} r;
|
} r;
|
||||||
struct list_head mw_list;
|
struct list_head mw_list;
|
||||||
} *rl_mw;
|
} *rl_mw;
|
||||||
@@ -198,7 +204,7 @@ struct rpcrdma_buffer {
|
|||||||
atomic_t rb_credits; /* most recent server credits */
|
atomic_t rb_credits; /* most recent server credits */
|
||||||
unsigned long rb_cwndscale; /* cached framework rpc_cwndscale */
|
unsigned long rb_cwndscale; /* cached framework rpc_cwndscale */
|
||||||
int rb_max_requests;/* client max requests */
|
int rb_max_requests;/* client max requests */
|
||||||
struct list_head rb_mws; /* optional memory windows/fmrs */
|
struct list_head rb_mws; /* optional memory windows/fmrs/frmrs */
|
||||||
int rb_send_index;
|
int rb_send_index;
|
||||||
struct rpcrdma_req **rb_send_bufs;
|
struct rpcrdma_req **rb_send_bufs;
|
||||||
int rb_recv_index;
|
int rb_recv_index;
|
||||||
|
Reference in New Issue
Block a user