This is the second in a set of patch series to add in TID RDMA. This series is the patches to support OPFN which is the feature negotiation protocol used by TID RDMA. This is totally hidden from users and does not impact any API. It done under the hood at the driver level. 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). --- Kaike Wan (5): IB/hfi1: Add OPFN helper functions for TID RDMA feature IB/hfi1: OPFN interface IB/hfi1, IB/rdmavt: Allow for extending of QP's s_ack_queue IB/hfi1: Integrate OPFN into RC transactions IB/hfi1: Add static trace for OPFN Mitko Haralanov (1): IB/hfi1: OPFN support discovery drivers/infiniband/hw/hfi1/Makefile | 1 drivers/infiniband/hw/hfi1/chip.c | 11 + drivers/infiniband/hw/hfi1/chip.h | 3 drivers/infiniband/hw/hfi1/hfi.h | 3 drivers/infiniband/hw/hfi1/init.c | 10 + drivers/infiniband/hw/hfi1/opfn.c | 318 +++++++++++++++++++++++++++++++ drivers/infiniband/hw/hfi1/opfn.h | 85 ++++++++ drivers/infiniband/hw/hfi1/qp.c | 13 + drivers/infiniband/hw/hfi1/rc.c | 87 ++++++-- drivers/infiniband/hw/hfi1/ruc.c | 16 +- drivers/infiniband/hw/hfi1/tid_rdma.c | 217 +++++++++++++++++++++ drivers/infiniband/hw/hfi1/tid_rdma.h | 29 +++ drivers/infiniband/hw/hfi1/trace.h | 1 drivers/infiniband/hw/hfi1/trace_rx.h | 107 ---------- drivers/infiniband/hw/hfi1/trace_tid.h | 332 ++++++++++++++++++++++++++++++++ drivers/infiniband/hw/hfi1/uc.c | 3 drivers/infiniband/hw/hfi1/verbs.c | 2 drivers/infiniband/hw/hfi1/verbs.h | 8 + include/rdma/rdma_vt.h | 10 + 19 files changed, 1115 insertions(+), 141 deletions(-) create mode 100644 drivers/infiniband/hw/hfi1/opfn.c create mode 100644 drivers/infiniband/hw/hfi1/opfn.h create mode 100644 drivers/infiniband/hw/hfi1/trace_tid.h -- -Denny