#include <nm_minidriver.h>#include <infiniband/verbs.h>#include <nm_log.h>#include <nm_private.h>
Go to the source code of this file.
Data Structures | |
| struct | nm_ibverbs_segment_s |
| an RDMA segment. More... | |
| struct | nm_ibverbs_addr_s |
| the addresse for a QP More... | |
| struct | nm_ibverbs_cnx_addr_s |
| the address for a connection (one per track+gate). More... | |
| struct | nm_ibverbs_hca_s |
| Global state of a HCA with its context. More... | |
| struct | nm_ibverbs_ud_ep_s |
| an endpoint for UD messaging More... | |
| struct | nm_ibverbs_ud_recv_s |
| struct | nm_ibverbs_ud_recv_pool_s |
| struct | nm_ibverbs_ud_send_s |
| struct | nm_ibverbs_cnx_addr_msg_s |
| an addresse entry used to exchange connection addresses More... | |
| struct | nm_ibverbs_cnx_connect_packet_s |
| a packet sent through UD for address exchange More... | |
| struct | nm_ibverbs_context_s |
| a context for a HCA in RC mode More... | |
| struct | nm_ibverbs_context_s::nm_ibverbs_opts_s |
| struct | nm_ibverbs_cnx_s |
| an IB connection for a given destination (QP) More... | |
| struct | nm_ibverbs_iface_s |
| common interface for ibverbs More... | |
| struct | nm_ibverbs_regpool_entry_s |
| struct | nm_ibverbs_regpool_s |
| a pool of pre-registered memory buffers More... | |
Macros | |
| #define | NM_IBVERBS_UD_DEPTH 8192 |
| size of QP for send/recv on UD QP for connection establishment | |
| #define | NM_IBVERBS_TX_DEPTH 256 |
| size of QP for sending | |
| #define | NM_IBVERBS_RX_DEPTH 1024 |
| size of QP for receiving | |
| #define | NM_IBVERBS_SRQ_DEPTH 16384 |
| size of the CQ used for SRQ | |
| #define | NM_IBVERBS_ATOMIC_DEPTH 4 |
| size of queue for atomic ops | |
| #define | NM_IBVERBS_MAX_SG_SQ 16 |
| max sge num for sending | |
| #define | NM_IBVERBS_MAX_SG_RQ 16 |
| max sge num for receiving | |
| #define | NM_IBVERBS_MAX_INLINE 256 |
| #define | NM_IBVERBS_DEFAULT_MTU IBV_MTU_1024 |
| #define | NM_IBVERBS_TIMEOUT_CONNECT (1000 * 1000) /* 1 s */ |
| timeout to receive peer connection address (in usec.) | |
| #define | NM_IBVERBS_TIMEOUT_WARN (8 * 1000 * 1000) /* 8 s */ |
| granularity to display warnings about expired timeouts | |
| #define | NM_IBVERBS_TIMEOUT_READY (16 * 1000 * 1000) /* 16 s */ |
| timeout to assume peer is ready even without ready notification | |
| #define | GRH_OFFSET 40 /* 40 */ |
| offset at the beginning of all messages to allow for GRH header to be inserted in UD mode | |
| #define | NM_IBVERBS_SEGMENT_NULL ((struct nm_ibverbs_segment_s){ .raddr = 0, .rkey = 0 }) |
Enumerations | |
| enum | nm_ibverbs_wrid_e { _NM_IBVERBS_WRID_NONE = 0 , NM_IBVERBS_WRID_ACK , NM_IBVERBS_WRID_RDMA , NM_IBVERBS_WRID_RDV , NM_IBVERBS_WRID_DATA , NM_IBVERBS_WRID_HEADER , NM_IBVERBS_WRID_PACKET , NM_IBVERBS_WRID_SEG , NM_IBVERBS_WRID_RTR , NM_IBVERBS_WRID_RECV , NM_IBVERBS_WRID_SEND , _NM_IBVERBS_WRID_MAX } |
| list of WRIDs used in the driver. More... | |
| enum | nm_ibverbs_wrid_ud_e { NM_IBVERBS_WRID_UD_SEND = _NM_IBVERBS_WRID_MAX + 1 , NM_IBVERBS_WRID_UD_RECV , NM_IBVERBS_WRID_UD_RECV_POOL_FIRST = 32 , NM_IBVERBS_WRID_UD_RECV_POOL_LAST = 32 + 8192 } |
| list of WRIDs used on UD More... | |
Functions | |
| uint32_t | nm_ibverbs_checksum (const char *data, nm_len_t len) |
| uint32_t | nm_ibverbs_memcpy_and_checksum (void *_dest, const void *_src, nm_len_t len) |
| int | nm_ibverbs_checksum_enabled (void) |
| uint32_t | nm_ibverbs_copy_from_and_checksum (void *dest, nm_data_slicer_t *p_slicer, const void *src, nm_len_t offset, nm_len_t len) |
| uint32_t | nm_ibverbs_copy_to_and_checksum (const void *src, nm_data_slicer_t *p_slicer, void *dest, nm_len_t offset, nm_len_t len) |
| static int | nm_ibverbs_segment_isnull (const struct nm_ibverbs_segment_s *p_seg) |
| static int | nm_ibverbs_qpn_eq (const uint32_t *p_int1, const uint32_t *p_int2) |
| static uint32_t | nm_ibverbs_qpn_hash (const uint32_t *p_int) |
| static int | nm_ibverbs_addr_eq (const struct nm_ibverbs_addr_s *p_addr1, const struct nm_ibverbs_addr_s *p_addr2) |
| static uint32_t | nm_ibverbs_addr_hash (const struct nm_ibverbs_addr_s *p_addr) |
| PUK_LIST_TYPE (nm_ibverbs_cnx_addr_entry, struct nm_ibverbs_cnx_addr_msg_s msg;enum nm_ibverbs_cnx_addr_state_e local_state;int local_timeout;uint64_t local_oob;struct nm_ibverbs_cnx_s *p_cnx;double t_timeout;) | |
| an address entry used to store connection addresses | |
| static void | nm_ibverbs_cnx_addr_entry_destructor (struct nm_ibverbs_addr_s *p_addr, struct nm_ibverbs_cnx_addr_entry_s *p_entry) |
| PUK_HASHTABLE_TYPE (nm_ibverbs_cnx_addr_entry, struct nm_ibverbs_addr_s *, struct nm_ibverbs_cnx_addr_entry_s *, &nm_ibverbs_addr_hash, &nm_ibverbs_addr_eq, &nm_ibverbs_cnx_addr_entry_destructor) | |
| PUK_HASHTABLE_TYPE (nm_ibverbs_cnx_qpn, const uint32_t *, struct nm_ibverbs_cnx_s *, &nm_ibverbs_qpn_hash, &nm_ibverbs_qpn_eq, NULL) | |
| PUK_IFACE_TYPE (NewMad_ibverbs, struct nm_ibverbs_iface_s) | |
| void | nm_ibverbs_hca_open (struct nm_ibverbs_hca_s *p_hca, const char *device, int port, int gidx) |
| void | nm_ibverbs_hca_close (struct nm_ibverbs_hca_s *p_hca) |
| struct nm_ibverbs_cnx_s * | nm_ibverbs_cnx_create (struct nm_ibverbs_context_s *p_ibverbs_context, int cnx_id) |
| void | nm_ibverbs_cnx_close (struct nm_ibverbs_cnx_s *p_ibverbs_cnx) |
| void | nm_ibverbs_cnx_connect_async (struct nm_ibverbs_cnx_s *p_ibverbs_cnx, const void *p_url, size_t urlsize) |
| void | nm_ibverbs_cnx_connect_wait (struct nm_ibverbs_cnx_s *p_ibverbs_cnx) |
| struct nm_ibverbs_cnx_s * | nm_ibverbs_cnx_vector_connect (struct nm_ibverbs_context_s *p_ibverbs_context, const void *p_remote_url, size_t url_size) |
| return an already connected cnx, when vector connection is available | |
| int | nm_ibverbs_cnx_vector_enabled (void) |
| checks whether vector connect attribute is set | |
| int | nm_ibverbs_cnx_lazy_enabled (void) |
| checks whether lazy connect attribute is set | |
| void | nm_ibverbs_cnx_lazy_create (struct nm_ibverbs_context_s *p_ibverbs_context, struct nm_ibverbs_cnx_s **pp_ibverbs_cnx, const void *p_remote_url, size_t url_size, int cnx_id) |
| dynamically create a lazy connection | |
| static int | nm_ibverbs_cnx_lazy_ready (struct nm_ibverbs_cnx_s *p_ibverbs_cnx) |
| returns whether the given lazy connection is ready for communication | |
| void | nm_ibverbs_cnx_lazy_send_oob (struct nm_ibverbs_cnx_s *p_ibverbs_cnx, uint64_t oob) |
| send oob data to remote node | |
| static uint64_t | nm_ibverbs_cnx_lazy_get_oob (struct nm_ibverbs_cnx_s *p_ibverbs_cnx) |
| get latest oob data received | |
| void | nm_ibverbs_cnx_lazy_progress (struct nm_ibverbs_context_s *p_ibverbs_context) |
| make progress on lazy connections | |
| static struct nm_ibverbs_cnx_s * | nm_ibverbs_cnx_lazy_by_qpn (struct nm_ibverbs_context_s *p_ibverbs_context, uint32_t qpn) |
| struct nm_ibverbs_context_s * | nm_ibverbs_context_resolve_opts (puk_context_t p_context, const struct nm_ibverbs_opts_s *p_opts) |
| static void | nm_ibverbs_context_default_opts (struct nm_ibverbs_opts_s *p_opts) |
| static struct nm_ibverbs_context_s * | nm_ibverbs_context_resolve (puk_context_t p_context) |
| resolve context with default opts | |
| int | nm_ibverbs_context_wait_event (struct nm_ibverbs_context_s *p_ibverbs_context) |
| void | nm_ibverbs_context_cancel_wait (struct nm_ibverbs_context_s *p_ibverbs_context) |
| void | nm_ibverbs_context_get_profile (struct nm_ibverbs_context_s *p_ibverbs_context, struct nm_drv_profile_s *p_profile) |
| void | nm_ibverbs_context_get_url (struct nm_ibverbs_context_s *p_ibverbs_context, const void **pp_url, size_t *p_urlsize) |
| get the address for this context | |
| void | nm_ibverbs_context_get_wide_url (struct nm_ibverbs_context_s *p_ibverbs_context, int session_size, int rank, const void **pp_url, size_t *p_urlsize) |
| get wide address for vector connect | |
| void | nm_ibverbs_context_delete (struct nm_ibverbs_context_s *p_ibverbs_context) |
| void | nm_ibverbs_context_set_srq_limit (struct nm_ibverbs_context_s *p_ibverbs_context, int srq_limit) |
| struct ibv_mr * | nm_ibverbs_reg_mr (struct nm_ibverbs_context_s *p_ibverbs_context, void *buf, size_t size, struct nm_ibverbs_segment_s *p_segment) |
| int | nm_ibverbs_dereg_mr (struct nm_ibverbs_context_s *p_ibverbs_context, struct ibv_mr *p_mr) |
| int | nm_ibverbs_do_rdma (struct nm_ibverbs_cnx_s *__restrict__ p_ibverbs_cnx, const void *__restrict__ buf, int size, uint64_t raddr, int opcode, int flags, uint32_t lkey, uint32_t rkey, uint64_t wrid) __attribute__((warn_unused_result)) |
| int | nm_ibverbs_rdma_send (struct nm_ibverbs_cnx_s *p_ibverbs_cnx, int size, const void *__restrict__ ptr, const void *__restrict__ _raddr, const void *__restrict__ _lbase, const struct nm_ibverbs_segment_s *p_seg, const struct ibv_mr *__restrict__ mr, int wrid) __attribute__((warn_unused_result)) |
| int | nm_ibverbs_rdma_poll_inout (struct nm_ibverbs_cnx_s *__restrict__ p_ibverbs_cnx, int inout) __attribute__((warn_unused_result)) |
| static int | nm_ibverbs_rdma_poll_send (struct nm_ibverbs_cnx_s *__restrict__ p_ibverbs_cnx) __attribute__((warn_unused_result)) |
| static int | nm_ibverbs_rdma_poll_recv (struct nm_ibverbs_cnx_s *__restrict__ p_ibverbs_cnx) __attribute__((warn_unused_result)) |
| static int | nm_ibverbs_recv_poll (struct nm_ibverbs_cnx_s *__restrict__ p_ibverbs_cnx, uint64_t wrid) __attribute__((warn_unused_result)) |
| static int | nm_ibverbs_send_poll (struct nm_ibverbs_cnx_s *__restrict__ p_ibverbs_cnx, uint64_t wrid) __attribute__((warn_unused_result)) |
| static int | nm_ibverbs_send_flush (struct nm_ibverbs_cnx_s *__restrict__ p_ibverbs_cnx, uint64_t wrid) __attribute__((warn_unused_result)) |
| static int | nm_ibverbs_send_flushn_total (struct nm_ibverbs_cnx_s *__restrict__ p_ibverbs_cnx, int n) __attribute__((warn_unused_result)) |
| static int | nm_ibverbs_send_flushn (struct nm_ibverbs_cnx_s *__restrict__ p_ibverbs_cnx, int wrid, int n) __attribute__((warn_unused_result)) |
| void | nm_ibverbs_ud_ep_open (struct nm_ibverbs_ud_ep_s *p_ud_ep, struct nm_ibverbs_hca_s *p_hca) |
| void | nm_ibverbs_ud_ep_close (struct nm_ibverbs_ud_ep_s *p_ud_ep) |
| void | nm_ibverbs_ud_send_post (struct nm_ibverbs_ud_send_s *p_send, struct nm_ibverbs_ud_ep_s *p_ud_ep, void *buf, size_t size, const struct nm_ibverbs_addr_s *p_remote_addr) |
| int | nm_ibverbs_ud_send_poll (struct nm_ibverbs_ud_send_s *p_send) |
| void | nm_ibverbs_ud_send (struct nm_ibverbs_ud_ep_s *p_ud_ep, void *buf, size_t size, const struct nm_ibverbs_addr_s *p_remote_addr) |
| void | nm_ibverbs_ud_recv_post (struct nm_ibverbs_ud_recv_s *p_recv, struct nm_ibverbs_ud_ep_s *p_ud_ep, void *buf, size_t size) |
| int | nm_ibverbs_ud_recv_poll (struct nm_ibverbs_ud_recv_s *p_recv) |
| void | nm_ibverbs_ud_recv (struct nm_ibverbs_ud_ep_s *p_ud_ep, void *buf, size_t size) |
| void | nm_ibverbs_ud_recv_pool_post (struct nm_ibverbs_ud_recv_pool_s *p_recv, struct nm_ibverbs_ud_ep_s *p_ud_ep, void *buf, size_t size, int depth) |
| int | nm_ibverbs_ud_recv_pool_poll (struct nm_ibverbs_ud_recv_pool_s *p_recv) |
| void | nm_ibverbs_ud_recv_pool_reload (struct nm_ibverbs_ud_recv_pool_s *p_recv, int i) |
| void | nm_ibverbs_ud_recv_pool_delete (struct nm_ibverbs_ud_recv_pool_s *p_recv) |
| static void | nm_ibverbs_regpool_entry_segment (const struct nm_ibverbs_regpool_entry_s *p_entry, struct nm_ibverbs_segment_s *p_seg) |
| fill segment from regpool entry | |
| PUK_LFSTACK_TYPE (nm_ibverbs_regpool_block, struct nm_ibverbs_regpool_entry_s entry;) | |
| PUK_LFSTACK_TYPE (nm_ibverbs_regpool_slice, void *p_ptr;struct ibv_mr *p_mr;struct nm_ibverbs_regpool_block_lfstack_cell_s *p_cells;) | |
| void | nm_ibverbs_regpool_init (struct nm_ibverbs_regpool_s *p_regpool, struct nm_ibverbs_context_s *p_ibverbs_context, nm_len_t entry_size, nm_len_t slice_size) |
| void | nm_ibverbs_regpool_destroy (struct nm_ibverbs_regpool_s *p_regpool) |
| const struct nm_ibverbs_regpool_entry_s * | nm_ibverbs_regpool_alloc_entry (struct nm_ibverbs_regpool_s *p_regpool) |
| void | nm_ibverbs_regpool_free_entry (struct nm_ibverbs_regpool_s *p_regpool, const struct nm_ibverbs_regpool_entry_s *p_entry) |
Variables | |
| int | nm_ibverbs_alignment |
| int | nm_ibverbs_memalign |
| static const char *const | nm_ibverbs_status_strings [] |
| messages for Work Completion status | |
| static const int | nm_ibverbs_mtu_values [] |
Macro Definition Documentation
◆ GRH_OFFSET
| #define GRH_OFFSET 40 /* 40 */ |
offset at the beginning of all messages to allow for GRH header to be inserted in UD mode
Definition at line 49 of file nm_ibverbs.h.
◆ NM_IBVERBS_ATOMIC_DEPTH
| #define NM_IBVERBS_ATOMIC_DEPTH 4 |
size of queue for atomic ops
Definition at line 33 of file nm_ibverbs.h.
◆ NM_IBVERBS_DEFAULT_MTU
| #define NM_IBVERBS_DEFAULT_MTU IBV_MTU_1024 |
Definition at line 37 of file nm_ibverbs.h.
◆ NM_IBVERBS_MAX_INLINE
| #define NM_IBVERBS_MAX_INLINE 256 |
Definition at line 36 of file nm_ibverbs.h.
◆ NM_IBVERBS_MAX_SG_RQ
| #define NM_IBVERBS_MAX_SG_RQ 16 |
max sge num for receiving
Definition at line 35 of file nm_ibverbs.h.
◆ NM_IBVERBS_MAX_SG_SQ
| #define NM_IBVERBS_MAX_SG_SQ 16 |
max sge num for sending
Definition at line 34 of file nm_ibverbs.h.
◆ NM_IBVERBS_RX_DEPTH
| #define NM_IBVERBS_RX_DEPTH 1024 |
size of QP for receiving
Definition at line 31 of file nm_ibverbs.h.
◆ NM_IBVERBS_SEGMENT_NULL
| #define NM_IBVERBS_SEGMENT_NULL ((struct nm_ibverbs_segment_s){ .raddr = 0, .rkey = 0 }) |
Definition at line 93 of file nm_ibverbs.h.
◆ NM_IBVERBS_SRQ_DEPTH
| #define NM_IBVERBS_SRQ_DEPTH 16384 |
size of the CQ used for SRQ
Definition at line 32 of file nm_ibverbs.h.
◆ NM_IBVERBS_TIMEOUT_CONNECT
| #define NM_IBVERBS_TIMEOUT_CONNECT (1000 * 1000) /* 1 s */ |
timeout to receive peer connection address (in usec.)
Definition at line 40 of file nm_ibverbs.h.
◆ NM_IBVERBS_TIMEOUT_READY
| #define NM_IBVERBS_TIMEOUT_READY (16 * 1000 * 1000) /* 16 s */ |
timeout to assume peer is ready even without ready notification
Definition at line 46 of file nm_ibverbs.h.
◆ NM_IBVERBS_TIMEOUT_WARN
| #define NM_IBVERBS_TIMEOUT_WARN (8 * 1000 * 1000) /* 8 s */ |
granularity to display warnings about expired timeouts
Definition at line 43 of file nm_ibverbs.h.
◆ NM_IBVERBS_TX_DEPTH
| #define NM_IBVERBS_TX_DEPTH 256 |
size of QP for sending
Definition at line 30 of file nm_ibverbs.h.
◆ NM_IBVERBS_UD_DEPTH
| #define NM_IBVERBS_UD_DEPTH 8192 |
size of QP for send/recv on UD QP for connection establishment
Definition at line 29 of file nm_ibverbs.h.
Enumeration Type Documentation
◆ nm_ibverbs_wrid_e
| enum nm_ibverbs_wrid_e |
list of WRIDs used in the driver.
Definition at line 61 of file nm_ibverbs.h.
◆ nm_ibverbs_wrid_ud_e
| enum nm_ibverbs_wrid_ud_e |
list of WRIDs used on UD
| Enumerator | |
|---|---|
| NM_IBVERBS_WRID_UD_SEND | |
| NM_IBVERBS_WRID_UD_RECV | |
| NM_IBVERBS_WRID_UD_RECV_POOL_FIRST | |
| NM_IBVERBS_WRID_UD_RECV_POOL_LAST | size of QP for send/recv on UD QP for connection establishment |
Definition at line 77 of file nm_ibverbs.h.
Function Documentation
◆ nm_ibverbs_addr_eq()
|
inlinestatic |
Definition at line 122 of file nm_ibverbs.h.
References nm_ibverbs_addr_s::cnx_id, nm_ibverbs_addr_s::lid, nm_ibverbs_addr_s::psn, and nm_ibverbs_addr_s::qpn.
◆ nm_ibverbs_addr_hash()
|
inlinestatic |
Definition at line 130 of file nm_ibverbs.h.
◆ nm_ibverbs_checksum()
| uint32_t nm_ibverbs_checksum | ( | const char * | data, |
| nm_len_t | len | ||
| ) |
◆ nm_ibverbs_checksum_enabled()
| int nm_ibverbs_checksum_enabled | ( | void | ) |
◆ nm_ibverbs_cnx_addr_entry_destructor()
|
static |
Definition at line 250 of file nm_ibverbs.h.
◆ nm_ibverbs_cnx_close()
| void nm_ibverbs_cnx_close | ( | struct nm_ibverbs_cnx_s * | p_ibverbs_cnx | ) |
◆ nm_ibverbs_cnx_connect_async()
| void nm_ibverbs_cnx_connect_async | ( | struct nm_ibverbs_cnx_s * | p_ibverbs_cnx, |
| const void * | p_url, | ||
| size_t | urlsize | ||
| ) |
◆ nm_ibverbs_cnx_connect_wait()
| void nm_ibverbs_cnx_connect_wait | ( | struct nm_ibverbs_cnx_s * | p_ibverbs_cnx | ) |
◆ nm_ibverbs_cnx_create()
| struct nm_ibverbs_cnx_s * nm_ibverbs_cnx_create | ( | struct nm_ibverbs_context_s * | p_ibverbs_context, |
| int | cnx_id | ||
| ) |
◆ nm_ibverbs_cnx_lazy_by_qpn()
|
inlinestatic |
Definition at line 390 of file nm_ibverbs.h.
References nm_ibverbs_context_s::cnx_by_qpn, nm_ibverbs_context_s::connect, and nm_ibverbs_cnx_s::p_ibverbs_context.
◆ nm_ibverbs_cnx_lazy_create()
| void nm_ibverbs_cnx_lazy_create | ( | struct nm_ibverbs_context_s * | p_ibverbs_context, |
| struct nm_ibverbs_cnx_s ** | pp_ibverbs_cnx, | ||
| const void * | p_remote_url, | ||
| size_t | url_size, | ||
| int | cnx_id | ||
| ) |
dynamically create a lazy connection
◆ nm_ibverbs_cnx_lazy_enabled()
| int nm_ibverbs_cnx_lazy_enabled | ( | void | ) |
checks whether lazy connect attribute is set
◆ nm_ibverbs_cnx_lazy_get_oob()
|
inlinestatic |
get latest oob data received
Definition at line 380 of file nm_ibverbs.h.
References assert(), nm_ibverbs_cnx_lazy_ready(), and nm_ibverbs_cnx_s::p_addr_entry.

◆ nm_ibverbs_cnx_lazy_progress()
| void nm_ibverbs_cnx_lazy_progress | ( | struct nm_ibverbs_context_s * | p_ibverbs_context | ) |
make progress on lazy connections
◆ nm_ibverbs_cnx_lazy_ready()
|
inlinestatic |
returns whether the given lazy connection is ready for communication
Definition at line 368 of file nm_ibverbs.h.
References nm_ibverbs_cnx_s::p_addr_entry.
Referenced by nm_ibverbs_cnx_lazy_get_oob().
◆ nm_ibverbs_cnx_lazy_send_oob()
| void nm_ibverbs_cnx_lazy_send_oob | ( | struct nm_ibverbs_cnx_s * | p_ibverbs_cnx, |
| uint64_t | oob | ||
| ) |
send oob data to remote node
◆ nm_ibverbs_cnx_vector_connect()
| struct nm_ibverbs_cnx_s * nm_ibverbs_cnx_vector_connect | ( | struct nm_ibverbs_context_s * | p_ibverbs_context, |
| const void * | p_remote_url, | ||
| size_t | url_size | ||
| ) |
return an already connected cnx, when vector connection is available
◆ nm_ibverbs_cnx_vector_enabled()
| int nm_ibverbs_cnx_vector_enabled | ( | void | ) |
checks whether vector connect attribute is set
◆ nm_ibverbs_context_cancel_wait()
| void nm_ibverbs_context_cancel_wait | ( | struct nm_ibverbs_context_s * | p_ibverbs_context | ) |
◆ nm_ibverbs_context_default_opts()
|
inlinestatic |
Definition at line 400 of file nm_ibverbs.h.
Referenced by nm_ibverbs_context_resolve().
◆ nm_ibverbs_context_delete()
| void nm_ibverbs_context_delete | ( | struct nm_ibverbs_context_s * | p_ibverbs_context | ) |
◆ nm_ibverbs_context_get_profile()
| void nm_ibverbs_context_get_profile | ( | struct nm_ibverbs_context_s * | p_ibverbs_context, |
| struct nm_drv_profile_s * | p_profile | ||
| ) |
◆ nm_ibverbs_context_get_url()
| void nm_ibverbs_context_get_url | ( | struct nm_ibverbs_context_s * | p_ibverbs_context, |
| const void ** | pp_url, | ||
| size_t * | p_urlsize | ||
| ) |
get the address for this context
◆ nm_ibverbs_context_get_wide_url()
| void nm_ibverbs_context_get_wide_url | ( | struct nm_ibverbs_context_s * | p_ibverbs_context, |
| int | session_size, | ||
| int | rank, | ||
| const void ** | pp_url, | ||
| size_t * | p_urlsize | ||
| ) |
get wide address for vector connect
◆ nm_ibverbs_context_resolve()
|
inlinestatic |
resolve context with default opts
Definition at line 409 of file nm_ibverbs.h.
References nm_ibverbs_context_default_opts(), and nm_ibverbs_context_resolve_opts().

◆ nm_ibverbs_context_resolve_opts()
| struct nm_ibverbs_context_s * nm_ibverbs_context_resolve_opts | ( | puk_context_t | p_context, |
| const struct nm_ibverbs_opts_s * | p_opts | ||
| ) |
Referenced by nm_ibverbs_context_resolve().
◆ nm_ibverbs_context_set_srq_limit()
| void nm_ibverbs_context_set_srq_limit | ( | struct nm_ibverbs_context_s * | p_ibverbs_context, |
| int | srq_limit | ||
| ) |
◆ nm_ibverbs_context_wait_event()
| int nm_ibverbs_context_wait_event | ( | struct nm_ibverbs_context_s * | p_ibverbs_context | ) |
◆ nm_ibverbs_copy_from_and_checksum()
| uint32_t nm_ibverbs_copy_from_and_checksum | ( | void * | dest, |
| nm_data_slicer_t * | p_slicer, | ||
| const void * | src, | ||
| nm_len_t | offset, | ||
| nm_len_t | len | ||
| ) |
◆ nm_ibverbs_copy_to_and_checksum()
| uint32_t nm_ibverbs_copy_to_and_checksum | ( | const void * | src, |
| nm_data_slicer_t * | p_slicer, | ||
| void * | dest, | ||
| nm_len_t | offset, | ||
| nm_len_t | len | ||
| ) |
◆ nm_ibverbs_dereg_mr()
| int nm_ibverbs_dereg_mr | ( | struct nm_ibverbs_context_s * | p_ibverbs_context, |
| struct ibv_mr * | p_mr | ||
| ) |
◆ nm_ibverbs_do_rdma()
| int nm_ibverbs_do_rdma | ( | struct nm_ibverbs_cnx_s *__restrict__ | p_ibverbs_cnx, |
| const void *__restrict__ | buf, | ||
| int | size, | ||
| uint64_t | raddr, | ||
| int | opcode, | ||
| int | flags, | ||
| uint32_t | lkey, | ||
| uint32_t | rkey, | ||
| uint64_t | wrid | ||
| ) |
◆ nm_ibverbs_hca_close()
| void nm_ibverbs_hca_close | ( | struct nm_ibverbs_hca_s * | p_hca | ) |
◆ nm_ibverbs_hca_open()
| void nm_ibverbs_hca_open | ( | struct nm_ibverbs_hca_s * | p_hca, |
| const char * | device, | ||
| int | port, | ||
| int | gidx | ||
| ) |
◆ nm_ibverbs_memcpy_and_checksum()
| uint32_t nm_ibverbs_memcpy_and_checksum | ( | void * | _dest, |
| const void * | _src, | ||
| nm_len_t | len | ||
| ) |
◆ nm_ibverbs_qpn_eq()
|
inlinestatic |
Definition at line 111 of file nm_ibverbs.h.
◆ nm_ibverbs_qpn_hash()
|
inlinestatic |
Definition at line 115 of file nm_ibverbs.h.
◆ nm_ibverbs_rdma_poll_inout()
| int nm_ibverbs_rdma_poll_inout | ( | struct nm_ibverbs_cnx_s *__restrict__ | p_ibverbs_cnx, |
| int | inout | ||
| ) |
Referenced by nm_ibverbs_rdma_poll_recv(), and nm_ibverbs_rdma_poll_send().
◆ nm_ibverbs_rdma_poll_recv()
|
inlinestatic |
Definition at line 504 of file nm_ibverbs.h.
References nm_ibverbs_rdma_poll_inout().
Referenced by nm_ibverbs_recv_poll().

◆ nm_ibverbs_rdma_poll_send()
|
inlinestatic |
Definition at line 497 of file nm_ibverbs.h.
References nm_ibverbs_rdma_poll_inout().
Referenced by nm_ibverbs_send_flush(), nm_ibverbs_send_flushn(), nm_ibverbs_send_flushn_total(), and nm_ibverbs_send_poll().

◆ nm_ibverbs_rdma_send()
| int nm_ibverbs_rdma_send | ( | struct nm_ibverbs_cnx_s * | p_ibverbs_cnx, |
| int | size, | ||
| const void *__restrict__ | ptr, | ||
| const void *__restrict__ | _raddr, | ||
| const void *__restrict__ | _lbase, | ||
| const struct nm_ibverbs_segment_s * | p_seg, | ||
| const struct ibv_mr *__restrict__ | mr, | ||
| int | wrid | ||
| ) |
◆ nm_ibverbs_recv_poll()
|
inlinestatic |
Definition at line 512 of file nm_ibverbs.h.
References NM_EAGAIN, NM_ESUCCESS, and nm_ibverbs_rdma_poll_recv().

◆ nm_ibverbs_reg_mr()
| struct ibv_mr * nm_ibverbs_reg_mr | ( | struct nm_ibverbs_context_s * | p_ibverbs_context, |
| void * | buf, | ||
| size_t | size, | ||
| struct nm_ibverbs_segment_s * | p_segment | ||
| ) |
◆ nm_ibverbs_regpool_alloc_entry()
| const struct nm_ibverbs_regpool_entry_s * nm_ibverbs_regpool_alloc_entry | ( | struct nm_ibverbs_regpool_s * | p_regpool | ) |
◆ nm_ibverbs_regpool_destroy()
| void nm_ibverbs_regpool_destroy | ( | struct nm_ibverbs_regpool_s * | p_regpool | ) |
◆ nm_ibverbs_regpool_entry_segment()
|
inlinestatic |
fill segment from regpool entry
Definition at line 614 of file nm_ibverbs.h.
References nm_ibverbs_regpool_entry_s::p_mr, nm_ibverbs_regpool_entry_s::p_ptr, nm_ibverbs_segment_s::raddr, and nm_ibverbs_segment_s::rkey.
◆ nm_ibverbs_regpool_free_entry()
| void nm_ibverbs_regpool_free_entry | ( | struct nm_ibverbs_regpool_s * | p_regpool, |
| const struct nm_ibverbs_regpool_entry_s * | p_entry | ||
| ) |
◆ nm_ibverbs_regpool_init()
| void nm_ibverbs_regpool_init | ( | struct nm_ibverbs_regpool_s * | p_regpool, |
| struct nm_ibverbs_context_s * | p_ibverbs_context, | ||
| nm_len_t | entry_size, | ||
| nm_len_t | slice_size | ||
| ) |
◆ nm_ibverbs_segment_isnull()
|
inlinestatic |
Definition at line 94 of file nm_ibverbs.h.
References nm_ibverbs_segment_s::raddr.
◆ nm_ibverbs_send_flush()
|
inlinestatic |
Definition at line 536 of file nm_ibverbs.h.
References NM_ESUCCESS, and nm_ibverbs_rdma_poll_send().

◆ nm_ibverbs_send_flushn()
|
inlinestatic |
Definition at line 562 of file nm_ibverbs.h.
References NM_ESUCCESS, and nm_ibverbs_rdma_poll_send().

◆ nm_ibverbs_send_flushn_total()
|
inlinestatic |
Definition at line 549 of file nm_ibverbs.h.
References NM_ESUCCESS, and nm_ibverbs_rdma_poll_send().

◆ nm_ibverbs_send_poll()
|
inlinestatic |
Definition at line 524 of file nm_ibverbs.h.
References NM_EAGAIN, NM_ESUCCESS, and nm_ibverbs_rdma_poll_send().

◆ nm_ibverbs_ud_ep_close()
| void nm_ibverbs_ud_ep_close | ( | struct nm_ibverbs_ud_ep_s * | p_ud_ep | ) |
◆ nm_ibverbs_ud_ep_open()
| void nm_ibverbs_ud_ep_open | ( | struct nm_ibverbs_ud_ep_s * | p_ud_ep, |
| struct nm_ibverbs_hca_s * | p_hca | ||
| ) |
◆ nm_ibverbs_ud_recv()
| void nm_ibverbs_ud_recv | ( | struct nm_ibverbs_ud_ep_s * | p_ud_ep, |
| void * | buf, | ||
| size_t | size | ||
| ) |
◆ nm_ibverbs_ud_recv_poll()
| int nm_ibverbs_ud_recv_poll | ( | struct nm_ibverbs_ud_recv_s * | p_recv | ) |
◆ nm_ibverbs_ud_recv_pool_delete()
| void nm_ibverbs_ud_recv_pool_delete | ( | struct nm_ibverbs_ud_recv_pool_s * | p_recv | ) |
◆ nm_ibverbs_ud_recv_pool_poll()
| int nm_ibverbs_ud_recv_pool_poll | ( | struct nm_ibverbs_ud_recv_pool_s * | p_recv | ) |
◆ nm_ibverbs_ud_recv_pool_post()
| void nm_ibverbs_ud_recv_pool_post | ( | struct nm_ibverbs_ud_recv_pool_s * | p_recv, |
| struct nm_ibverbs_ud_ep_s * | p_ud_ep, | ||
| void * | buf, | ||
| size_t | size, | ||
| int | depth | ||
| ) |
◆ nm_ibverbs_ud_recv_pool_reload()
| void nm_ibverbs_ud_recv_pool_reload | ( | struct nm_ibverbs_ud_recv_pool_s * | p_recv, |
| int | i | ||
| ) |
◆ nm_ibverbs_ud_recv_post()
| void nm_ibverbs_ud_recv_post | ( | struct nm_ibverbs_ud_recv_s * | p_recv, |
| struct nm_ibverbs_ud_ep_s * | p_ud_ep, | ||
| void * | buf, | ||
| size_t | size | ||
| ) |
◆ nm_ibverbs_ud_send()
| void nm_ibverbs_ud_send | ( | struct nm_ibverbs_ud_ep_s * | p_ud_ep, |
| void * | buf, | ||
| size_t | size, | ||
| const struct nm_ibverbs_addr_s * | p_remote_addr | ||
| ) |
◆ nm_ibverbs_ud_send_poll()
| int nm_ibverbs_ud_send_poll | ( | struct nm_ibverbs_ud_send_s * | p_send | ) |
◆ nm_ibverbs_ud_send_post()
| void nm_ibverbs_ud_send_post | ( | struct nm_ibverbs_ud_send_s * | p_send, |
| struct nm_ibverbs_ud_ep_s * | p_ud_ep, | ||
| void * | buf, | ||
| size_t | size, | ||
| const struct nm_ibverbs_addr_s * | p_remote_addr | ||
| ) |
◆ PUK_HASHTABLE_TYPE() [1/2]
| PUK_HASHTABLE_TYPE | ( | nm_ibverbs_cnx_addr_entry | , |
| struct nm_ibverbs_addr_s * | , | ||
| struct nm_ibverbs_cnx_addr_entry_s * | , | ||
| & | nm_ibverbs_addr_hash, | ||
| & | nm_ibverbs_addr_eq, | ||
| & | nm_ibverbs_cnx_addr_entry_destructor | ||
| ) |
◆ PUK_HASHTABLE_TYPE() [2/2]
| PUK_HASHTABLE_TYPE | ( | nm_ibverbs_cnx_qpn | , |
| const uint32_t * | , | ||
| struct nm_ibverbs_cnx_s * | , | ||
| & | nm_ibverbs_qpn_hash, | ||
| & | nm_ibverbs_qpn_eq, | ||
| NULL | |||
| ) |
◆ PUK_IFACE_TYPE()
| PUK_IFACE_TYPE | ( | NewMad_ibverbs | , |
| struct nm_ibverbs_iface_s | |||
| ) |
◆ PUK_LFSTACK_TYPE() [1/2]
| PUK_LFSTACK_TYPE | ( | nm_ibverbs_regpool_block | , |
| struct nm_ibverbs_regpool_entry_s entry; | |||
| ) |
◆ PUK_LFSTACK_TYPE() [2/2]
| PUK_LFSTACK_TYPE | ( | nm_ibverbs_regpool_slice | , |
| void *p_ptr;struct ibv_mr *p_mr;struct nm_ibverbs_regpool_block_lfstack_cell_s *p_cells; | |||
| ) |
◆ PUK_LIST_TYPE()
| PUK_LIST_TYPE | ( | nm_ibverbs_cnx_addr_entry | , |
| struct nm_ibverbs_cnx_addr_msg_s msg;enum nm_ibverbs_cnx_addr_state_e local_state;int local_timeout;uint64_t local_oob;struct nm_ibverbs_cnx_s *p_cnx;double t_timeout; | |||
| ) |
an address entry used to store connection addresses
Variable Documentation
◆ nm_ibverbs_alignment
|
extern |
◆ nm_ibverbs_memalign
|
extern |
◆ nm_ibverbs_mtu_values
|
static |
Definition at line 468 of file nm_ibverbs.h.
◆ nm_ibverbs_status_strings
|
static |
messages for Work Completion status
Definition at line 442 of file nm_ibverbs.h.