summaryrefslogtreecommitdiffstats
path: root/include/rdma
diff options
context:
space:
mode:
authorDoug Ledford <dledford@redhat.com>2019-01-31 11:56:25 -0500
committerDoug Ledford <dledford@redhat.com>2019-01-31 11:56:25 -0500
commit2a6423961edf9db98d1e567992560e3bab65a9fc (patch)
tree142ea39376f3cba0e6cef13fba18441ec35b3820 /include/rdma
parentdb421a54996c602503204345171c662e65f20527 (diff)
parenta131d16460971353e7dd6916d9fd34c1c946a782 (diff)
downloadlinux-2a6423961edf9db98d1e567992560e3bab65a9fc.tar.gz
linux-2a6423961edf9db98d1e567992560e3bab65a9fc.tar.bz2
linux-2a6423961edf9db98d1e567992560e3bab65a9fc.zip
Merge branch 'opfn' into hfi1-tid
This series adds the OPFN feature, which is used as the negotiation protocol by TID RDMA. This adds a totally hidden, in-band negotiation transfer that happens on the consumer's queue pair but without the consumer's knowledge. For that reason, things like completions for OPFN transfers must be filtered out of the completion queue and not sent to the consumer. This feature does not impact any consumer APIs, but does impact the driver/driver wire API. At a high level OPFN enables exchanging parameters between two hosts using IB compare and swap requests to a special virtual address. The request uses a reserved IB work request opcode (see patch 3). * opfn: IB/hfi1: Add static trace for OPFN IB/hfi1: Integrate OPFN into RC transactions IB/hfi1, IB/rdmavt: Allow for extending of QP's s_ack_queue IB/hfi1: OPFN interface IB/hfi1: Add OPFN helper functions for TID RDMA feature IB/hfi1: OPFN support discovery Signed-off-by: Doug Ledford <dledford@redhat.com>
Diffstat (limited to 'include/rdma')
-rw-r--r--include/rdma/rdma_vt.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/include/rdma/rdma_vt.h b/include/rdma/rdma_vt.h
index acb3bc96dfa7..168e40be183c 100644
--- a/include/rdma/rdma_vt.h
+++ b/include/rdma/rdma_vt.h
@@ -182,6 +182,7 @@ struct rvt_driver_params {
u32 max_mad_size;
u8 qos_shift;
u8 max_rdma_atomic;
+ u8 extra_rdma_atomic;
u8 reserved_operations;
};
@@ -519,7 +520,14 @@ static inline unsigned rvt_get_npkeys(struct rvt_dev_info *rdi)
*/
static inline unsigned int rvt_max_atomic(struct rvt_dev_info *rdi)
{
- return rdi->dparms.max_rdma_atomic + 1;
+ return rdi->dparms.max_rdma_atomic +
+ rdi->dparms.extra_rdma_atomic + 1;
+}
+
+static inline unsigned int rvt_size_atomic(struct rvt_dev_info *rdi)
+{
+ return rdi->dparms.max_rdma_atomic +
+ rdi->dparms.extra_rdma_atomic;
}
/*