All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tom Tucker <tom@opengridcomputing.com>
To: Trond Myklebust <trond.myklebust@fys.uio.no>
Cc: Tom Talpey <Thomas.Talpey@netapp.com>, linux-nfs@vger.kernel.org
Subject: [PATCH,RFC 01/02] xprtrdma: Add data types to support FRMR
Date: Wed, 13 Aug 2008 11:17:56 -0500	[thread overview]
Message-ID: <48A30934.6060802@opengridcomputing.com> (raw)


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;

                 reply	other threads:[~2008-08-13 16:17 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=48A30934.6060802@opengridcomputing.com \
    --to=tom@opengridcomputing.com \
    --cc=Thomas.Talpey@netapp.com \
    --cc=linux-nfs@vger.kernel.org \
    --cc=trond.myklebust@fys.uio.no \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.