]> git.openfabrics.org - ~shefty/libibverbs.git/commitdiff
new
authorSean Hefty <sean.hefty@intel.com>
Fri, 7 Sep 2012 21:38:08 +0000 (14:38 -0700)
committerSean Hefty <sean.hefty@intel.com>
Fri, 7 Sep 2012 21:38:08 +0000 (14:38 -0700)
meta
patches/xrc [new file with mode: 0644]

diff --git a/meta b/meta
index f6612a803f3c7409c40ac3b6c1456c8193be3c75..0b41ef6222d1db5b4f6b1109a0870813216924db 100644 (file)
--- a/meta
+++ b/meta
@@ -1,7 +1,8 @@
 Version: 1
-Previous: 2d26388022dd16df219f8803bfef4b8a1de02396
-Head: 6fbf2b29ca68fc10b7ee47dc0c09f54db0b32320
+Previous: 58cbebedacbad09a7e4eb026fe4d3429d0f17908
+Head: b0b747e276b58ee5967383cf2ff60316af401054
 Applied:
   verbs-ext: 6fbf2b29ca68fc10b7ee47dc0c09f54db0b32320
+  xrc: b0b747e276b58ee5967383cf2ff60316af401054
 Unapplied:
 Hidden:
diff --git a/patches/xrc b/patches/xrc
new file mode 100644 (file)
index 0000000..bd7877e
--- /dev/null
@@ -0,0 +1,57 @@
+Bottom: b2b2b839d978bb240b0641dff8459eaee9553d17
+Top:    b2b2b839d978bb240b0641dff8459eaee9553d17
+Author: Sean Hefty <sean.hefty@intel.com>
+Date:   2012-09-07 14:38:07 -0700
+
+Use extensions to define XRC support
+
+Define a common libibverbs extension to support XRC.
+
+XRC introduces several new concepts and structures:
+
+XRC domains: xrcd's are a type of protection domain used to
+associate shared receive queues with xrc queue pairs.  Since
+xrcd are meant to be shared among multiple processes, we
+introduce new APIs to open/close xrcd's.
+
+XRC shared receive queues: xrc srq's are similar to normal
+srq's, except that they are bound to an xrcd, rather
+than to a protection domain.  Based on the current spec
+and implementation, they are only usable with xrc qps.  To
+support xrc srq's, we extend the existing srq_init_attr
+structure to include an srq type and other needed information.
+The extended fields are ignored unless extensions are being
+used to support existing applications.
+
+XRC queue pairs: xrc defines two new types of QPs.  The
+initiator, or send-side, xrc qp behaves similar to a send-
+only RC qp.  xrc send qp's are managed through the existing
+QP functions.  The send_wr structure is extended in a back-
+wards compatible way to support posting sends on a send xrc
+qp, which require specifying the remote xrc srq.
+
+The target, or receive-side, xrc qp behaves differently
+than other implemented qp's.  A recv xrc qp can be created,
+modified, and destroyed like other qp's through the existing
+calls.  The qp_init_attr structure is extended for xrc qp's,
+with extension support dependent upon the qp_type being
+defined correctly.
+
+Because xrc recv qp's are bound to an xrcd, rather than a pd,
+it is intended to be used among multiple processes.  Any process
+with access to an xrcd may allocate and connect an xrc recv qp.
+The actual xrc recv qp is allocated and managed by the kernel.
+If the owning process explicit destroys the xrc recv qp, it is
+destroyed.  However, if the xrc recv qp is left open when the
+user process exits or closes its device, then the lifetime of
+the xrc recv qp is bound with the lifetime of the xrcd.
+
+The user to kernel ABI is extended to account for opening/
+closing the xrcd and the creation of the extended srq type.
+
+Signed-off-by: Sean Hefty <sean.hefty@intel.com>
+
+
+---
+
+