Document EFA direct verbs feature. Signed-off-by: Gal Pressman <galpress@xxxxxxxxxx> --- CMakeLists.txt | 1 + debian/libibverbs-dev.install | 2 ++ providers/efa/man/CMakeLists.txt | 4 ++++ providers/efa/man/efadv.7 | 29 +++++++++++++++++++++++ providers/efa/man/efadv_create_driver_qp.3 | 38 ++++++++++++++++++++++++++++++ redhat/rdma-core.spec | 2 ++ suse/rdma-core.spec | 2 ++ 7 files changed, 78 insertions(+) create mode 100644 providers/efa/man/CMakeLists.txt create mode 100644 providers/efa/man/efadv.7 create mode 100644 providers/efa/man/efadv_create_driver_qp.3 diff --git a/CMakeLists.txt b/CMakeLists.txt index d0f42283ff8a..e4ad09cb8317 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -580,6 +580,7 @@ add_subdirectory(providers/bnxt_re) add_subdirectory(providers/cxgb3) # NO SPARSE add_subdirectory(providers/cxgb4) # NO SPARSE add_subdirectory(providers/efa) +add_subdirectory(providers/efa/man) add_subdirectory(providers/hns) add_subdirectory(providers/i40iw) # NO SPARSE add_subdirectory(providers/mlx4) diff --git a/debian/libibverbs-dev.install b/debian/libibverbs-dev.install index b0c77825fd6c..5b8dd5f5da69 100644 --- a/debian/libibverbs-dev.install +++ b/debian/libibverbs-dev.install @@ -28,6 +28,8 @@ usr/share/man/man3/ibv_* usr/share/man/man3/mbps_to_ibv_rate.3 usr/share/man/man3/mlx4dv_*.3 usr/share/man/man3/mlx5dv_*.3 +usr/share/man/man3/efadv_*.3 usr/share/man/man3/mult_to_ibv_rate.3 usr/share/man/man7/mlx4dv.7 usr/share/man/man7/mlx5dv.7 +usr/share/man/man7/efadv.7 diff --git a/providers/efa/man/CMakeLists.txt b/providers/efa/man/CMakeLists.txt new file mode 100644 index 000000000000..435cd51c464a --- /dev/null +++ b/providers/efa/man/CMakeLists.txt @@ -0,0 +1,4 @@ +rdma_man_pages( + efadv_create_driver_qp.3 + efadv.7 +) diff --git a/providers/efa/man/efadv.7 b/providers/efa/man/efadv.7 new file mode 100644 index 000000000000..731dac241f0f --- /dev/null +++ b/providers/efa/man/efadv.7 @@ -0,0 +1,29 @@ +.\" -*- nroff -*- +.\" +.TH EFADV 7 2019-01-19 1.0.0 +.SH "NAME" +efadv \- Direct verbs for efa devices +.br +This provides low level access to efa devices to perform direct operations, +without general branching performed by libibverbs. + +.SH "DESCRIPTION" +The libibverbs API is an abstract one. It is agnostic to any underlying +provider specific implementation. While this abstraction has the advantage +of user applications portability, it has a performance penalty. For some +applications optimizing performance is more important than portability. + +The efa direct verbs API is intended for such applications. +It exposes efa specific low level operations, allowing the application +to bypass the libibverbs API. + +The direct include of efadv.h together with linkage to efa library will +allow usage of this new interface. + +.SH "SEE ALSO" +.BR verbs (7) + +.SH "AUTHORS" +.TP +Gal Pressman <galpress@xxxxxxxxxx> + diff --git a/providers/efa/man/efadv_create_driver_qp.3 b/providers/efa/man/efadv_create_driver_qp.3 new file mode 100644 index 000000000000..6b7374609977 --- /dev/null +++ b/providers/efa/man/efadv_create_driver_qp.3 @@ -0,0 +1,38 @@ +.\" -*- nroff -*- +.\" +.TH EFADV_QUERY_DEVICE 3 2019-01-23 1.0.0 +.SH "NAME" +efadv_create_driver_qp \- Create EFA specific Queue Pair +.SH "SYNOPSIS" +.nf +.B #include <infiniband/efadv.h> +.sp +.BI "struct ibv_qp *efadv_create_driver_qp(struct ibv_pd *ibvpd, +.BI " struct ibv_qp_init_attr *attr, +.BI " uint32_t driver_qp_type); +.fi +.SH "DESCRIPTION" +.B efadv_create_driver_qp() +Create device-specific Queue Pairs. +.PP +Scalable Reliable Datagram (SRD) transport provides reliable out-of-order +delivery, transparently utilizing multiple network paths to reduce network tail +latency. Its interface is similar to UD, in particular it supports message size +up to MTU, with error handling extended to support reliable communication. +.PP +.nf +enum { +.in +8 +EFADV_QP_DRIVER_TYPE_SRD = 0, +.in -8 +}; + +.fi +.SH "RETURN VALUE" +efadv_create_driver_qp() returns a pointer to the created QP, or NULL if the request fails. +.SH "SEE ALSO" +.BR efadv (7) +.SH "AUTHORS" +.TP +Gal Pressman <galpress@xxxxxxxxxx> + diff --git a/redhat/rdma-core.spec b/redhat/rdma-core.spec index 6c291aaff8a2..ef33172e76d7 100644 --- a/redhat/rdma-core.spec +++ b/redhat/rdma-core.spec @@ -404,8 +404,10 @@ rm -rf %{buildroot}/%{_sbindir}/srp_daemon.sh %{_mandir}/man7/rdma_cm.* %{_mandir}/man3/mlx5dv* %{_mandir}/man3/mlx4dv* +%{_mandir}/man3/efadv* %{_mandir}/man7/mlx5dv* %{_mandir}/man7/mlx4dv* +%{_mandir}/man7/efadv* %files -n libibverbs %dir %{_sysconfdir}/libibverbs.d diff --git a/suse/rdma-core.spec b/suse/rdma-core.spec index 6b235571ef28..4c6b244c9199 100644 --- a/suse/rdma-core.spec +++ b/suse/rdma-core.spec @@ -592,8 +592,10 @@ rm -rf %{buildroot}/%{_sbindir}/srp_daemon.sh %if 0%{?dma_coherent} %{_mandir}/man3/mlx5dv* %{_mandir}/man3/mlx4dv* +%{_mandir}/man3/efadv* %{_mandir}/man7/mlx5dv* %{_mandir}/man7/mlx4dv* +%{_mandir}/man7/efadv* %endif %files -n libibverbs -- 2.7.4