All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH,RFC 01/02] xprtrdma: Add data types to support FRMR
@ 2008-08-13 16:17 Tom Tucker
  0 siblings, 0 replies; only message in thread
From: Tom Tucker @ 2008-08-13 16:17 UTC (permalink / raw)
  To: Trond Myklebust; +Cc: Tom Talpey, linux-nfs


Add data types to support FRMR and a new memory registration strategy
to use FRMR if available.

Signed-off-by: Tom Tucker <tom@opengridcomputing.com>

---
  include/linux/sunrpc/xprtrdma.h |    1 +
  net/sunrpc/xprtrdma/xprt_rdma.h |   10 +++++++++-
  2 files changed, 10 insertions(+), 1 deletions(-)

diff --git a/include/linux/sunrpc/xprtrdma.h b/include/linux/sunrpc/xprtrdma.h
index 4de56b1..98d8e4a 100644
--- a/include/linux/sunrpc/xprtrdma.h
+++ b/include/linux/sunrpc/xprtrdma.h
@@ -79,6 +79,7 @@ enum rpcrdma_memreg {
  	RPCRDMA_MEMWINDOWS_ASYNC,
  	RPCRDMA_MTHCAFMR,
  	RPCRDMA_ALLPHYSICAL,
+	RPCRDMA_FASTREG,
  	RPCRDMA_LAST
  };

diff --git a/net/sunrpc/xprtrdma/xprt_rdma.h b/net/sunrpc/xprtrdma/xprt_rdma.h
index 2427822..1f81dad 100644
--- a/net/sunrpc/xprtrdma/xprt_rdma.h
+++ b/net/sunrpc/xprtrdma/xprt_rdma.h
@@ -58,6 +58,7 @@ struct rpcrdma_ia {
  	struct rdma_cm_id 	*ri_id;
  	struct ib_pd		*ri_pd;
  	struct ib_mr		*ri_bind_mem;
+	u32			ri_dma_lkey;
  	struct completion	ri_done;
  	int			ri_async_rc;
  	enum rpcrdma_memreg	ri_memreg_strategy;
@@ -159,6 +160,11 @@ struct rpcrdma_mr_seg {		/* chunk descriptors */
  			} r;
  			struct list_head mw_list;
  		} *rl_mw;
+		struct rpcrdma_frmr {
+			struct ib_fast_reg_page_list *fr_pgl;
+			struct ib_mr *fr_mr;
+			struct list_head fr_list;
+		} *rl_fr;
  	} mr_chunk;
  	u64		mr_base;	/* registration result */
  	u32		mr_rkey;	/* registration result */
@@ -198,7 +204,9 @@ struct rpcrdma_buffer {
  	atomic_t	rb_credits;	/* most recent server credits */
  	unsigned long	rb_cwndscale;	/* cached framework rpc_cwndscale */
  	int		rb_max_requests;/* client max requests */
-	struct list_head rb_mws;	/* optional memory windows/fmrs */
+	spinlock_t	rb_frs_lock;	/* protects frs list */
+	struct list_head rb_frs;	/* optional fmrs */
+	struct list_head rb_mws;	/* optional memory windows */
  	int		rb_send_index;
  	struct rpcrdma_req	**rb_send_bufs;
  	int		rb_recv_index;

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2008-08-13 16:17 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-08-13 16:17 [PATCH,RFC 01/02] xprtrdma: Add data types to support FRMR Tom Tucker

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.