Skip to content
Open
Show file tree
Hide file tree
Changes from 5 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 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
5 changes: 5 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,6 +33,7 @@ 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
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