diff options
author | Doug Ledford <dledford@redhat.com> | 2019-01-31 11:56:25 -0500 |
---|---|---|
committer | Doug Ledford <dledford@redhat.com> | 2019-01-31 11:56:25 -0500 |
commit | 2a6423961edf9db98d1e567992560e3bab65a9fc (patch) | |
tree | 142ea39376f3cba0e6cef13fba18441ec35b3820 /include/rdma | |
parent | db421a54996c602503204345171c662e65f20527 (diff) | |
parent | a131d16460971353e7dd6916d9fd34c1c946a782 (diff) | |
download | linux-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.h | 10 |
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; } /* |