Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -804,6 +804,7 @@ add_subdirectory(librdmacm/man)
# Providers
if (HAVE_COHERENT_DMA)
add_subdirectory(providers/bnxt_re)
add_subdirectory(providers/bnxt_re/man)
add_subdirectory(providers/cxgb4) # NO SPARSE
add_subdirectory(providers/efa)
add_subdirectory(providers/efa/man)
Expand Down
1 change: 1 addition & 0 deletions debian/ibverbs-providers.install
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
etc/libibverbs.d/
usr/lib/*/libbnxt_re.so.*
usr/lib/*/libefa.so.*
usr/lib/*/libhns.so.*
usr/lib/*/libibverbs/lib*-rdmav*.so
Expand Down
14 changes: 14 additions & 0 deletions debian/ibverbs-providers.symbols
Original file line number Diff line number Diff line change
@@ -1,3 +1,17 @@
libbnxt_re.so.1 ibverbs-providers #MINVER#
* Build-Depends-Package: libibverbs-dev
BNXT_RE_1.1@BNXT_RE_1.1 64
bnxt_re_dv_alloc_db_region@BNXT_RE_1.1 64
bnxt_re_dv_create_cq@BNXT_RE_1.1 64
bnxt_re_dv_create_qp@BNXT_RE_1.1 64
bnxt_re_dv_destroy_cq@BNXT_RE_1.1 64
bnxt_re_dv_destroy_qp@BNXT_RE_1.1 64
bnxt_re_dv_free_db_region@BNXT_RE_1.1 64
bnxt_re_dv_get_default_db_region@BNXT_RE_1.1 64
bnxt_re_dv_modify_qp@BNXT_RE_1.1 64
bnxt_re_dv_query_qp@BNXT_RE_1.1 64
bnxt_re_dv_umem_dereg@BNXT_RE_1.1 64
bnxt_re_dv_umem_reg@BNXT_RE_1.1 64
libmlx4.so.1 ibverbs-providers #MINVER#
* Build-Depends-Package: libibverbs-dev
MLX4_1.0@MLX4_1.0 15
Expand Down
7 changes: 7 additions & 0 deletions debian/libibverbs-dev.install
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
usr/include/infiniband/arch.h
usr/include/infiniband/bnxt_re-hsi.h
usr/include/infiniband/bnxt_re_dv.h
usr/include/infiniband/efadv.h
usr/include/infiniband/hnsdv.h
usr/include/infiniband/ib_user_ioctl_verbs.h
Expand All @@ -15,6 +17,8 @@ usr/include/infiniband/tm_types.h
usr/include/infiniband/verbs.h
usr/include/infiniband/verbs_api.h
usr/lib/*/lib*-rdmav*.a
usr/lib/*/libbnxt_re.a
usr/lib/*/libbnxt_re.so
usr/lib/*/libefa.a
usr/lib/*/libefa.so
usr/lib/*/libhns.a
Expand All @@ -29,13 +33,15 @@ usr/lib/*/libmlx4.a
usr/lib/*/libmlx4.so
usr/lib/*/libmlx5.a
usr/lib/*/libmlx5.so
usr/lib/*/pkgconfig/libbnxt_re.pc
usr/lib/*/pkgconfig/libefa.pc
usr/lib/*/pkgconfig/libhns.pc
usr/lib/*/pkgconfig/libibverbs.pc
usr/lib/*/pkgconfig/libionic.pc
usr/lib/*/pkgconfig/libmana.pc
usr/lib/*/pkgconfig/libmlx4.pc
usr/lib/*/pkgconfig/libmlx5.pc
usr/share/man/man3/bnxt_re_dv*.3
usr/share/man/man3/efadv_*.3
usr/share/man/man3/hnsdv_*.3
usr/share/man/man3/ibv_*
Expand All @@ -45,6 +51,7 @@ 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/mult_to_ibv_rate.3
usr/share/man/man7/bnxt_re_dv.7
usr/share/man/man7/efadv.7
usr/share/man/man7/hnsdv.7
usr/share/man/man7/ionicdv.7
Expand Down
26 changes: 18 additions & 8 deletions libibverbs/driver.h
Original file line number Diff line number Diff line change
Expand Up @@ -833,22 +833,32 @@ static inline void ibv_initialize_parent_domain(struct ibv_pd *parent_domain,
}

/**
* In case the length is 0, the buffer size is used.
* In case the length is 0, the buffer size is used. Handles both
* dmabuf-backed and plain user virtual address buffers.
*/
static inline void
fill_attr_in_buf_umem(struct ibv_command_buffer *cmdb, uint16_t attr_id,
struct ib_uverbs_buffer_desc *storage,
struct ibv_buf *buf, void *addr, size_t length)
{
if (!buf || buf->dmabuf_fd == -1)
if (!buf)
return;

*storage = (struct ib_uverbs_buffer_desc){
.type = IB_UVERBS_BUFFER_TYPE_DMABUF,
.fd = buf->dmabuf_fd,
.addr = addr ? (uintptr_t)addr - (uintptr_t)buf->addr : 0,
.length = length ? length : buf->size,
};
if (buf->dmabuf_fd != -1) {
*storage = (struct ib_uverbs_buffer_desc){
.type = IB_UVERBS_BUFFER_TYPE_DMABUF,
.fd = buf->dmabuf_fd,
.addr = addr ? (uintptr_t)addr - (uintptr_t)buf->addr : 0,
.length = length ? length : buf->size,
};
} else {
*storage = (struct ib_uverbs_buffer_desc){
.type = IB_UVERBS_BUFFER_TYPE_VA,
.fd = -1,
.addr = (uintptr_t)(addr ? addr : buf->addr),
.length = length ? length : buf->size,
};
}
fill_attr_in_ptr(cmdb, attr_id, storage);
cmdb->fallback_ioctl_only = 1;
}
Expand Down
16 changes: 15 additions & 1 deletion providers/bnxt_re/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,20 @@
rdma_provider(bnxt_re
rdma_shared_provider(bnxt_re bnxt_re.map
1 1.1.${PACKAGE_VERSION}
db.c
main.c
memory.c
verbs.c
dv.c
)

publish_headers(infiniband
bnxt_re-hsi.h
bnxt_re_dv.h
)

rdma_pkg_config("bnxt_re" "libibverbs" "${CMAKE_THREAD_LIBS_INIT}")

if (ENABLE_LTTNG AND LTTNGUST_FOUND)
target_include_directories(bnxt_re PUBLIC ".")
target_link_libraries(bnxt_re LINK_PRIVATE LTTng::UST)
endif()
Loading