summaryrefslogtreecommitdiffstats
path: root/include/rdma
diff options
context:
space:
mode:
authorArtemy Kovalyov <artemyko@mellanox.com>2017-08-17 14:52:05 +0200
committerDoug Ledford <dledford@redhat.com>2017-08-29 14:30:17 +0200
commit9c2c849625cf779e0fac41c8be3c163df4b80c14 (patch)
treeb85532ae39da6a8a0ccc66f64b7855d077bc674c /include/rdma
parentIB/core: Separate CQ handle in SRQ context (diff)
downloadlinux-9c2c849625cf779e0fac41c8be3c163df4b80c14.tar.xz
linux-9c2c849625cf779e0fac41c8be3c163df4b80c14.zip
IB/core: Add new SRQ type IB_SRQT_TM
This patch adds new SRQ type - IB_SRQT_TM. The new SRQ type supports tag matching and rendezvous offloads for MPI applications. When SRQ receives a message it will search through the matching list for the corresponding posted receive buffer. The process of searching the matching list is called tag matching. In case the tag matching results in a match, the received message will be placed in the address specified by the receive buffer. In case no match was found the message will be placed in a generic buffer until the corresponding receive buffer will be posted. These messages are called unexpected and their set is called an unexpected list. Signed-off-by: Artemy Kovalyov <artemyko@mellanox.com> Reviewed-by: Yossi Itigin <yosefe@mellanox.com> Signed-off-by: Leon Romanovsky <leon@kernel.org> Signed-off-by: Doug Ledford <dledford@redhat.com>
Diffstat (limited to 'include/rdma')
-rw-r--r--include/rdma/ib_verbs.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h
index f0e46757185b..1b4bb8743969 100644
--- a/include/rdma/ib_verbs.h
+++ b/include/rdma/ib_verbs.h
@@ -991,12 +991,14 @@ enum ib_cq_notify_flags {
enum ib_srq_type {
IB_SRQT_BASIC,
- IB_SRQT_XRC
+ IB_SRQT_XRC,
+ IB_SRQT_TM,
};
static inline bool ib_srq_has_cq(enum ib_srq_type srq_type)
{
- return srq_type == IB_SRQT_XRC;
+ return srq_type == IB_SRQT_XRC ||
+ srq_type == IB_SRQT_TM;
}
enum ib_srq_attr_mask {
@@ -1022,6 +1024,10 @@ struct ib_srq_init_attr {
struct {
struct ib_xrcd *xrcd;
} xrc;
+
+ struct {
+ u32 max_num_tags;
+ } tag_matching;
};
} ext;
};