From: Dennis Dalessandro <dennis.dalessandro-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
To: dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org
Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Mike Marciniszyn
<mike.marciniszyn-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
Dean Luick <dean.luick-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
Ira Weiny <ira.weiny-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Subject: [PATCH v2 21/36] IB/rdmavt: Move MR datastructures into rvt
Date: Mon, 28 Dec 2015 13:14:29 -0800 [thread overview]
Message-ID: <20151228211359.29850.65278.stgit@scvm10.sc.intel.com> (raw)
In-Reply-To: <20151228205612.29850.7328.stgit-9QXIwq+3FY+1XWohqUldA0EOCMrvLtNR@public.gmane.org>
This patch adds the MR datastructures based on hfi1 into rvt. For now the
data structures are defined in include/rdma/rdma_vt.h but once all MR
functionality has been moved from the drivers into rvt these should move to
rdmavt/mr.h
Reviewed-by: Ira Weiny <ira.weiny-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Reviewed-by: Dean Luick <dean.luick-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Reviewed-by: Mike Marciniszyn <mike.marciniszyn-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Signed-off-by: Dennis Dalessandro <dennis.dalessandro-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
---
Changes since v1:
Rename rdi.lk_table => rdi.lkey_table
include/rdma/rdma_vt.h | 53 ++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 53 insertions(+), 0 deletions(-)
diff --git a/include/rdma/rdma_vt.h b/include/rdma/rdma_vt.h
index bf072a4..f232e39 100644
--- a/include/rdma/rdma_vt.h
+++ b/include/rdma/rdma_vt.h
@@ -56,6 +56,56 @@
#include "ib_verbs.h"
/*
+ * For Memory Regions. This stuff should probably be moved into rdmavt/mr.h once
+ * drivers no longer need access to the MR directly.
+ */
+
+/*
+ * A segment is a linear region of low physical memory.
+ * Used by the verbs layer.
+ */
+struct rvt_seg {
+ void *vaddr;
+ size_t length;
+};
+
+/* The number of rvt_segs that fit in a page. */
+#define RVT_SEGSZ (PAGE_SIZE / sizeof(struct rvt_seg))
+
+struct rvt_segarray {
+ struct rvt_seg segs[RVT_SEGSZ];
+};
+
+struct rvt_mregion {
+ struct ib_pd *pd; /* shares refcnt of ibmr.pd */
+ u64 user_base; /* User's address for this region */
+ u64 iova; /* IB start address of this region */
+ size_t length;
+ u32 lkey;
+ u32 offset; /* offset (bytes) to start of region */
+ int access_flags;
+ u32 max_segs; /* number of rvt_segs in all the arrays */
+ u32 mapsz; /* size of the map array */
+ u8 page_shift; /* 0 - non unform/non powerof2 sizes */
+ u8 lkey_published; /* in global table */
+ struct completion comp; /* complete when refcount goes to zero */
+ atomic_t refcount;
+ struct rvt_segarray *map[0]; /* the segments */
+};
+
+#define RVT_MAX_LKEY_TABLE_BITS 23
+
+struct rvt_lkey_table {
+ spinlock_t lock; /* protect changes in this struct */
+ u32 next; /* next unused index (speeds search) */
+ u32 gen; /* generation count */
+ u32 max; /* size of the table */
+ struct rvt_mregion __rcu **table;
+};
+
+/* End Memmory Region */
+
+/*
* Things that are driver specific, module parameters in hfi1 and qib
*/
struct rvt_driver_params {
@@ -119,6 +169,9 @@ struct rvt_dev_info {
/* Driver specific properties */
struct rvt_driver_params dparms;
+ struct rvt_mregion __rcu *dma_mr;
+ struct rvt_lkey_table lkey_table;
+
/* PKey Table goes here */
/*
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2015-12-28 21:14 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-28 20:58 [PATCH v2 00/36] Add rdma verbs transport library Dennis Dalessandro
[not found] ` <20151228205612.29850.7328.stgit-9QXIwq+3FY+1XWohqUldA0EOCMrvLtNR@public.gmane.org>
2015-12-28 20:59 ` [PATCH v2 01/36] IB/rdmavt: Create module framework and handle driver registration Dennis Dalessandro
[not found] ` <20151228205825.29850.23290.stgit-9QXIwq+3FY+1XWohqUldA0EOCMrvLtNR@public.gmane.org>
2015-12-29 5:23 ` Leon Romanovsky
2015-12-28 21:00 ` [PATCH v2 02/36] IB/rdmavt: Consolidate dma ops in rdmavt Dennis Dalessandro
2015-12-28 21:01 ` [PATCH v2 03/36] IB/rdmavt: Add protection domain to rdmavt Dennis Dalessandro
2015-12-28 21:02 ` [PATCH v2 04/36] IB/rdmavt: Add ib core device attributes to rvt driver params list Dennis Dalessandro
2015-12-28 21:02 ` [PATCH v2 05/36] IB/rdmavt: Macroize override checks during driver registration Dennis Dalessandro
2015-12-28 21:03 ` [PATCH v2 06/36] IB/rdmavt: Add query and modify device stubs Dennis Dalessandro
2015-12-28 21:04 ` [PATCH v2 07/36] IB/rdmavt: Add query and modify port stubs Dennis Dalessandro
2015-12-28 21:04 ` [PATCH v2 08/36] IB/rdmavt: Add pkey query stub Dennis Dalessandro
2015-12-28 21:04 ` [PATCH v2 09/36] IB/rdmavt: Add query gid stub Dennis Dalessandro
2015-12-28 21:05 ` [PATCH v2 10/36] IB/rdmavt: Alloc and dealloc ucontexts Dennis Dalessandro
2015-12-28 21:07 ` [PATCH v2 11/36] IB/rdmavt: Add queue pair function stubs Dennis Dalessandro
2015-12-28 21:07 ` [PATCH v2 12/36] IB/rdmavt: Add address handle stubs Dennis Dalessandro
2015-12-28 21:08 ` [PATCH v2 13/36] IB/rdmavt: Add memory region stubs Dennis Dalessandro
2015-12-28 21:09 ` [PATCH v2 14/36] IB/rdmavt: Add SRQ stubs Dennis Dalessandro
2015-12-28 21:10 ` [PATCH v2 15/36] IB/rdmavt: Add multicast stubs Dennis Dalessandro
2015-12-28 21:10 ` [PATCH v2 16/36] IB/rdmavt: Add process MAD stub Dennis Dalessandro
2015-12-28 21:11 ` [PATCH v2 17/36] IB/rdmavt: Add mmap stub Dennis Dalessandro
2015-12-28 21:11 ` [PATCH v2 18/36] IB/rdmavt: Add get port immutable stub Dennis Dalessandro
2015-12-28 21:12 ` [PATCH v2 19/36] IB/rdmavt: Add completion queue function stubs Dennis Dalessandro
2015-12-28 21:13 ` [PATCH v2 20/36] IB/rdmavt: Add post send and recv stubs Dennis Dalessandro
2015-12-28 21:14 ` Dennis Dalessandro [this message]
2015-12-28 21:15 ` [PATCH v2 22/36] IB/rdmavt: Add queue pair data structure to rdmavt Dennis Dalessandro
2015-12-28 21:15 ` [PATCH v2 23/36] IB/rdmavt: Move driver helper functions to a common structure Dennis Dalessandro
2015-12-28 21:15 ` [PATCH v2 24/36] IB/rdmavt: Add device specific info prints Dennis Dalessandro
2015-12-28 21:15 ` [PATCH v2 25/36] IB/rdmavt: Add the start of capability flags Dennis Dalessandro
2015-12-28 21:16 ` [PATCH v2 26/36] IB/rdmavt: Move memory registration into rdmavt Dennis Dalessandro
2015-12-28 21:16 ` [PATCH v2 27/36] IB/rdmavt: Do not use rvt prints which rely on driver too early Dennis Dalessandro
2015-12-28 21:16 ` [PATCH v2 28/36] IB/rdmavt: Add common LID defines to rdmavt Dennis Dalessandro
2015-12-28 21:16 ` [PATCH v2 29/36] IB/rdmavt: Add AH " Dennis Dalessandro
2015-12-28 21:17 ` [PATCH v2 30/36] IB/rdmavt: Move SRQ data structure into rdmavt Dennis Dalessandro
2015-12-28 21:17 ` [PATCH v2 31/36] IB/rdmavt: Add an ibport data structure to rdmavt Dennis Dalessandro
2015-12-28 21:18 ` [PATCH v2 32/36] IB/rdmavt: Add driver notification for new AH Dennis Dalessandro
2015-12-28 21:18 ` [PATCH v2 33/36] IB/rdmavt: Break rdma_vt main include header file up Dennis Dalessandro
2015-12-28 21:18 ` [PATCH v2 34/36] IB/rdmavt: Initialize and teardown of qpn table Dennis Dalessandro
2015-12-28 21:18 ` [PATCH v2 35/36] IB/rdmavt: Add mmap related functions Dennis Dalessandro
2015-12-28 21:19 ` [PATCH v2 36/36] IB/rdmavt: Add pkey support Dennis Dalessandro
2015-12-29 13:41 ` [PATCH v2 00/36] Add rdma verbs transport library Moni Shoua
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=20151228211359.29850.65278.stgit@scvm10.sc.intel.com \
--to=dennis.dalessandro-ral2jqcrhueavxtiumwx3w@public.gmane.org \
--cc=dean.luick-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
--cc=dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=ira.weiny-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
--cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=mike.marciniszyn-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
/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.