13 #include <uct/api/uct_def.h> 14 #include <uct/api/tl.h> 15 #include <uct/api/version.h> 16 #include <ucs/async/async_fwd.h> 17 #include <ucs/datastruct/callbackq.h> 18 #include <ucs/datastruct/callbackq_compat.h> 19 #include <ucs/datastruct/linear_func.h> 20 #include <ucs/memory/memory_type.h> 21 #include <ucs/type/status.h> 22 #include <ucs/type/thread_mode.h> 23 #include <ucs/type/cpu_set.h> 24 #include <ucs/stats/stats_fwd.h> 25 #include <ucs/sys/compiler_def.h> 26 #include <ucs/sys/topo/base/topo.h> 28 #include <sys/socket.h> 255 char name[UCT_COMPONENT_NAME_MAX];
329 char tl_name[UCT_TL_NAME_MAX];
330 char dev_name[UCT_DEVICE_NAME_MAX];
337 #define UCT_TL_RESOURCE_DESC_FMT "%s/%s" 338 #define UCT_TL_RESOURCE_DESC_ARG(_resource) (_resource)->tl_name, (_resource)->dev_name 348 typedef enum uct_atomic_op {
370 #define UCT_IFACE_FLAG_AM_SHORT UCS_BIT(0) 371 #define UCT_IFACE_FLAG_AM_BCOPY UCS_BIT(1) 372 #define UCT_IFACE_FLAG_AM_ZCOPY UCS_BIT(2) 374 #define UCT_IFACE_FLAG_PENDING UCS_BIT(3) 377 #define UCT_IFACE_FLAG_PUT_SHORT UCS_BIT(4) 378 #define UCT_IFACE_FLAG_PUT_BCOPY UCS_BIT(5) 379 #define UCT_IFACE_FLAG_PUT_ZCOPY UCS_BIT(6) 382 #define UCT_IFACE_FLAG_GET_SHORT UCS_BIT(8) 383 #define UCT_IFACE_FLAG_GET_BCOPY UCS_BIT(9) 384 #define UCT_IFACE_FLAG_GET_ZCOPY UCS_BIT(10) 387 #define UCT_IFACE_FLAG_ATOMIC_CPU UCS_BIT(30) 389 #define UCT_IFACE_FLAG_ATOMIC_DEVICE UCS_BIT(31) 394 #define UCT_IFACE_FLAG_ERRHANDLE_SHORT_BUF UCS_BIT(32) 395 #define UCT_IFACE_FLAG_ERRHANDLE_BCOPY_BUF UCS_BIT(33) 396 #define UCT_IFACE_FLAG_ERRHANDLE_ZCOPY_BUF UCS_BIT(34) 397 #define UCT_IFACE_FLAG_ERRHANDLE_AM_ID UCS_BIT(35) 398 #define UCT_IFACE_FLAG_ERRHANDLE_REMOTE_MEM UCS_BIT(36) 399 #define UCT_IFACE_FLAG_ERRHANDLE_BCOPY_LEN UCS_BIT(37) 400 #define UCT_IFACE_FLAG_ERRHANDLE_PEER_FAILURE UCS_BIT(38) 402 #define UCT_IFACE_FLAG_EP_CHECK UCS_BIT(39) 405 #define UCT_IFACE_FLAG_CONNECT_TO_IFACE UCS_BIT(40) 406 #define UCT_IFACE_FLAG_CONNECT_TO_EP UCS_BIT(41) 407 #define UCT_IFACE_FLAG_CONNECT_TO_SOCKADDR UCS_BIT(42) 410 #define UCT_IFACE_FLAG_AM_DUP UCS_BIT(43) 415 #define UCT_IFACE_FLAG_CB_SYNC UCS_BIT(44) 418 #define UCT_IFACE_FLAG_CB_ASYNC UCS_BIT(45) 426 #define UCT_IFACE_FLAG_EP_KEEPALIVE UCS_BIT(46) 433 #define UCT_IFACE_FLAG_TAG_EAGER_SHORT UCS_BIT(50) 434 #define UCT_IFACE_FLAG_TAG_EAGER_BCOPY UCS_BIT(51) 435 #define UCT_IFACE_FLAG_TAG_EAGER_ZCOPY UCS_BIT(52) 436 #define UCT_IFACE_FLAG_TAG_RNDV_ZCOPY UCS_BIT(53) 439 #define UCT_IFACE_FLAG_INTER_NODE UCS_BIT(54) 440 #define UCT_IFACE_FLAG_DEVICE_EP UCS_BIT(55) 457 #define UCT_IFACE_FLAG_EVENT_SEND_COMP UCS_BIT(0) 459 #define UCT_IFACE_FLAG_EVENT_RECV UCS_BIT(1) 461 #define UCT_IFACE_FLAG_EVENT_RECV_SIG UCS_BIT(2) 464 #define UCT_IFACE_FLAG_EVENT_FD UCS_BIT(3) 466 #define UCT_IFACE_FLAG_EVENT_ASYNC_CB UCS_BIT(4) 1070 size_t opt_zcopy_align;
1087 size_t opt_zcopy_align;
1105 size_t opt_zcopy_align;
1122 size_t max_outstanding;
1151 } atomic32, atomic64;
1154 uint64_t event_flags;
1157 size_t device_addr_len;
1158 size_t iface_addr_len;
1160 size_t max_conn_priv;
1163 struct sockaddr_storage listen_sockaddr;
1172 ucs_linear_func_t latency;
1176 unsigned dev_num_paths;
1199 uint64_t field_mask;
1201 ucs_cpu_set_t cpu_mask;
1213 const char *tl_name;
1214 const char *dev_name;
1226 void *conn_request_arg;
1237 ucs_stats_node_t *stats_root;
1242 void *err_handler_arg;
1247 uint32_t err_handler_flags;
1257 void *async_event_arg;
1274 size_t am_alignment;
1292 size_t am_align_offset;
1312 uint64_t field_mask;
1356 uint32_t sockaddr_cb_flags;
1406 unsigned path_index;
1423 const void *private_data;
1429 size_t private_data_length;
1443 size_t dev_addr_length;
1449 size_t iface_addr_length;
1463 uint64_t field_mask;
1468 const void *private_data;
1474 size_t private_data_length;
1487 uint64_t field_mask;
1493 size_t max_conn_priv;
1507 uint64_t field_mask;
1512 struct sockaddr_storage sockaddr;
1527 uint64_t field_mask;
1562 uint64_t reg_mem_types;
1563 uint64_t detect_mem_types;
1564 uint64_t alloc_mem_types;
1565 uint64_t access_mem_types;
1568 ucs_linear_func_t reg_cost;
1572 char component_name[UCT_COMPONENT_NAME_MAX];
1573 size_t rkey_packed_size;
1574 ucs_cpu_set_t local_cpus;
1629 uint64_t field_mask;
1643 ucs_sys_device_t sys_dev;
1657 size_t alloc_length;
1673 size_t dmabuf_offset;
1716 ucs_sys_device_t sys_device;
1770 char priv[UCT_PENDING_REQ_PRIV_LEN];
1810 size_t length,
void *inline_data,
ucs_status_t status);
1825 unsigned header_length,
ucs_status_t status,
unsigned flags);
1828 char priv[UCT_TAG_PRIV_LEN];
1842 extern const char *uct_alloc_method_names[];
1843 extern const char *uct_device_type_names[];
1860 unsigned *num_components_p);
1937 unsigned *num_resources_p);
2004 void *arg,
unsigned flags,
2060 const char *env_prefix,
const char *filename,
2523 uint64_t field_mask;
2577 ucs_sys_device_t sys_device;
2599 size_t length, uct_mem_advice_t advice);
2671 unsigned num_methods,
2702 const char *env_prefix,
const char *filename,
2793 uint64_t remote_addr,
void **addr_p);
2824 return ucs_callbackq_dispatch(&worker->progress_q);
2859 return iface->ops.iface_flush(iface, flags, comp);
2876 return iface->ops.iface_fence(iface, flags);
2890 uct_recv_desc_t *release_desc = uct_recv_desc(desc);
2891 release_desc->cb(release_desc, desc);
2902 return ep->iface->ops.ep_put_short(ep, buffer, length, remote_addr, rkey);
2911 void *arg, uint64_t remote_addr,
2914 return ep->iface->ops.ep_put_bcopy(ep, pack_cb, arg, remote_addr, rkey);
2952 return ep->iface->ops.ep_put_zcopy(ep, iov, iovcnt, remote_addr, rkey, comp);
2963 return ep->iface->ops.ep_get_short(ep, buffer, length, remote_addr, rkey);
2972 void *arg,
size_t length,
2976 return ep->iface->ops.ep_get_bcopy(ep, unpack_cb, arg, length, remote_addr,
3015 return ep->iface->ops.ep_get_zcopy(ep, iov, iovcnt, remote_addr, rkey, comp);
3024 const void *payload,
unsigned length)
3026 return ep->iface->ops.ep_am_short(ep,
id, header, payload, length);
3063 return ep->iface->ops.ep_am_short_iov(ep,
id, iov, iovcnt);
3075 return ep->iface->ops.ep_am_bcopy(ep,
id, pack_cb, arg, flags);
3118 unsigned header_length,
3123 return ep->iface->ops.ep_am_zcopy(ep,
id, header, header_length, iov, iovcnt,
3135 return ep->iface->ops.ep_atomic_cswap64(ep, compare, swap, remote_addr, rkey, result, comp);
3147 return ep->iface->ops.ep_atomic_cswap32(ep, compare, swap, remote_addr, rkey, result, comp);
3156 uint32_t value, uint64_t remote_addr,
3159 return ep->iface->ops.ep_atomic32_post(ep, opcode, value, remote_addr, rkey);
3168 uint64_t value, uint64_t remote_addr,
3171 return ep->iface->ops.ep_atomic64_post(ep, opcode, value, remote_addr, rkey);
3180 uint32_t value, uint32_t *result,
3184 return ep->iface->ops.ep_atomic32_fetch(ep, opcode, value, result,
3185 remote_addr, rkey, comp);
3194 uint64_t value, uint64_t *result,
3198 return ep->iface->ops.ep_atomic64_fetch(ep, opcode, value, result,
3199 remote_addr, rkey, comp);
3227 return ep->iface->ops.ep_pending_add(ep, req, flags);
3246 ep->iface->ops.ep_pending_purge(ep, cb, arg);
3281 return ep->iface->ops.ep_flush(ep, flags, comp);
3299 return ep->iface->ops.ep_fence(ep, flags);
3326 const void *data,
size_t length)
3328 return ep->iface->ops.ep_tag_eager_short(ep, tag, data, length);
3358 void *arg,
unsigned flags)
3360 return ep->iface->ops.ep_tag_eager_bcopy(ep, tag, imm, pack_cb, arg, flags);
3408 return ep->iface->ops.ep_tag_eager_zcopy(ep, tag, imm, iov, iovcnt, flags,
3451 unsigned header_length,
3457 return ep->iface->ops.ep_tag_rndv_zcopy(ep, tag, header, header_length,
3458 iov, iovcnt, flags, comp);
3482 return ep->iface->ops.ep_tag_rndv_cancel(ep, op);
3507 unsigned header_length,
3510 return ep->iface->ops.ep_tag_rndv_request(ep, tag, header, header_length,
3552 return iface->ops.iface_tag_recv_zcopy(iface, tag, tag_mask, iov, iovcnt, ctx);
3582 return iface->ops.iface_tag_recv_cancel(iface, ctx, force);
3606 iface->ops.iface_progress_enable(iface, flags);
3631 iface->ops.iface_progress_disable(iface, flags);
3641 return iface->ops.iface_progress(iface);
3710 const char *env_prefix,
const char *filename,
3804 static UCS_F_ALWAYS_INLINE
ucs_status_t uct_ep_disconnect(uct_ep_h ep, unsigned flags)
Initiate a disconnection of an endpoint connected to a sockaddr by a connection manager uct_cm_h...
ucs_status_t uct_md_config_read(uct_component_h component, const char *env_prefix, const char *filename, uct_md_config_t **config_p)
Read the configuration for a memory domain.
ucs_status_t uct_config_get(void *config, const char *name, char *value, size_t max)
Get value by name from interface configuration (uct_iface_config_t), memory domain configuration (uct...
uct_cm_attr_field
UCT connection manager attributes field mask.
Definition: uct.h:907
ucs_status_t uct_ep_tag_eager_zcopy(uct_ep_h ep, uct_tag_t tag, uint64_t imm, const uct_iov_t *iov, size_t iovcnt, unsigned flags, uct_completion_t *comp)
Zcopy eager tagged-send operation.
Definition: uct.h:3422
uct_progress_types
UCT progress types.
Definition: uct.h:569
ucs_status_t uct_iface_get_device_address(uct_iface_h iface, uct_device_addr_t *addr)
Get address of the device the interface is using.
static UCS_F_ALWAYS_INLINE void uct_completion_update_status(uct_completion_t *comp, ucs_status_t status)
Update status of UCT completion handle.
Definition: uct.h:3826
struct uct_tl_resource_desc uct_tl_resource_desc_t
Communication resource descriptor.
void(* uct_async_event_cb_t)(void *arg, unsigned flags)
Callback to process asynchronous events.
Definition: uct_def.h:899
void uct_config_release(void *config)
Release configuration memory returned from uct_md_iface_config_read(), uct_md_config_read(), or from uct_cm_config_read().
ucs_status_t uct_md_query_tl_resources(uct_md_h md, uct_tl_resource_desc_t **resources_p, unsigned *num_resources_p)
Query for transport resources.
uct_device_type_t
List of UCX device types.
Definition: uct.h:308
ucs_status_t uct_md_mem_advise(uct_md_h md, uct_mem_h memh, void *addr, size_t length, uct_mem_advice_t advice)
Give advice about the use of memory.
ucs_status_t uct_iface_event_fd_get(uct_iface_h iface, int *fd_p)
Obtain a notification file descriptor for polling.
ucs_status_ptr_t uct_ep_tag_rndv_zcopy(uct_ep_h ep, uct_tag_t tag, const void *header, unsigned header_length, const uct_iov_t *iov, size_t iovcnt, unsigned flags, uct_completion_t *comp)
Rendezvous tagged-send operation.
Definition: uct.h:3470
ucs_status_t uct_ep_atomic32_post(uct_ep_h ep, uct_atomic_op_t opcode, uint32_t value, uint64_t remote_addr, uct_rkey_t rkey)
Definition: uct.h:3176
ucs_status_t uct_iface_event_arm(uct_iface_h iface, unsigned events)
Turn on event notification for the next event.
void * uct_mem_h
Definition: uct_def.h:84
void(* uct_sockaddr_conn_request_callback_t)(uct_iface_h iface, void *arg, uct_conn_request_h conn_request, const void *conn_priv_data, size_t length)
Callback to process an incoming connection request on the server side.
Definition: uct_def.h:644
Structure for scatter-gather I/O.
Definition: uct_def.h:149
uct_component_attr_field
UCT component attributes field mask.
Definition: uct.h:230
ucs_status_t uct_iface_accept(uct_iface_h iface, uct_conn_request_h conn_request)
Accept connection request.
uct_msg_flags
Flags for active message send operation.
Definition: uct.h:582
void uct_ep_pending_purge(uct_ep_h ep, uct_pending_purge_callback_t cb, void *arg)
Remove all pending requests from an endpoint.
Definition: uct.h:3263
ucs_status_t uct_rkey_unpack(uct_component_h component, const void *rkey_buffer, uct_rkey_bundle_t *rkey_ob)
Unpack a remote key.
ssize_t uct_ep_tag_eager_bcopy(uct_ep_h ep, uct_tag_t tag, uint64_t imm, uct_pack_callback_t pack_cb, void *arg, unsigned flags)
Bcopy eager tagged-send operation.
Definition: uct.h:3376
ucs_status_t uct_ep_flush(uct_ep_h ep, unsigned flags, uct_completion_t *comp)
Flush outstanding communication operations on an endpoint.
Definition: uct.h:3299
void(* uct_ep_disconnect_cb_t)(uct_ep_h ep, void *arg)
Callback to handle the disconnection of the remote peer.
Definition: uct_def.h:745
ucs_status_t uct_listener_query(uct_listener_h listener, uct_listener_attr_t *listener_attr)
Get attributes specific to a particular listener.
ucs_status_t uct_iface_tag_recv_cancel(uct_iface_h iface, uct_tag_context_t *ctx, int force)
Cancel a posted tag.
Definition: uct.h:3599
ucs_status_t uct_mem_alloc(size_t length, const uct_alloc_method_t *methods, unsigned num_methods, const uct_mem_alloc_params_t *params, uct_allocated_memory_t *mem)
Allocate memory for zero-copy communications and remote access.
uct_mem_advice_t
list of UCT memory use advice
Definition: uct.h:891
void uct_listener_destroy(uct_listener_h listener)
Destroy a transport listener.
Parameters used for interface creation.
Definition: uct.h:1216
struct uct_md_config uct_md_config_t
Definition: uct_def.h:81
ucs_status_t uct_ep_put_zcopy(uct_ep_h ep, const uct_iov_t *iov, size_t iovcnt, uint64_t remote_addr, uct_rkey_t rkey, uct_completion_t *comp)
Write data to remote memory while avoiding local memory copy.
Definition: uct.h:2968
Memory domain resource descriptor.
Definition: uct.h:218
ucs_status_t uct_md_detect_memory_type(uct_md_h md, const void *addr, size_t length, ucs_memory_type_t *mem_type_p)
Detect memory type.
int uct_iface_is_reachable(const uct_iface_h iface, const uct_device_addr_t *dev_addr, const uct_iface_addr_t *iface_addr)
Check if remote iface address is reachable.
void(* uct_pending_purge_callback_t)(uct_pending_req_t *self, void *arg)
Callback to purge pending requests.
Definition: uct_def.h:588
uct_mem_alloc_params_field_t
UCT allocation parameters specification field mask.
Definition: uct.h:2513
ucs_status_t uct_iface_get_address(uct_iface_h iface, uct_iface_addr_t *addr)
Get interface address.
uct_cm_t * uct_cm_h
Definition: uct_def.h:105
uct_listener_params_field
UCT listener created by uct_listener_create parameters field mask.
Definition: uct.h:933
UCT component attributes.
Definition: uct.h:245
ucs_status_t(* uct_cm_ep_resolve_callback_t)(void *user_data, const uct_cm_ep_resolve_args_t *resolve_args)
Callback to notify that the client side endpoint is bound to a local device.
Definition: uct_def.h:797
ucs_status_t uct_mem_free(const uct_allocated_memory_t *mem)
Release allocated memory.
uct_cb_flags
Callback flags.
Definition: uct.h:605
void(* uct_cm_listener_conn_request_callback_t)(uct_listener_h listener, void *arg, const uct_cm_listener_conn_request_args_t *conn_req_args)
Callback to process an incoming connection request on the server side listener in a connection manage...
Definition: uct_def.h:669
uct_listener_attr_field
UCT listener attributes field mask.
Definition: uct.h:920
void(* uct_cm_ep_server_conn_notify_callback_t)(uct_ep_h ep, void *arg, const uct_cm_ep_server_conn_notify_args_t *connect_args)
Callback to process an incoming connection establishment acknowledgment on the server side listener...
Definition: uct_def.h:699
void uct_iface_release_desc(void *desc)
Release AM descriptor.
Definition: uct.h:2909
ucs_status_t uct_ep_check(const uct_ep_h ep, unsigned flags, uct_completion_t *comp)
check if the destination endpoint is alive in respect to UCT library
UCT listener attributes, capabilities and limitations.
Definition: uct.h:1522
struct uct_worker * uct_worker_h
Definition: uct_def.h:95
ucs_status_t uct_ep_atomic_cswap64(uct_ep_h ep, uint64_t compare, uint64_t swap, uint64_t remote_addr, uct_rkey_t rkey, uint64_t *result, uct_completion_t *comp)
Definition: uct.h:3152
ucs_status_t uct_ep_atomic64_post(uct_ep_h ep, uct_atomic_op_t opcode, uint64_t value, uint64_t remote_addr, uct_rkey_t rkey)
Definition: uct.h:3188
Interface attributes: capabilities and limitations.
Definition: uct.h:1080
int uct_worker_cb_id_t
Definition: uct_def.h:111
ucs_status_t uct_ep_put_short(uct_ep_h ep, const void *buffer, unsigned length, uint64_t remote_addr, uct_rkey_t rkey)
Definition: uct.h:2920
ucs_status_t uct_ep_am_short_iov(uct_ep_h ep, uint8_t id, const uct_iov_t *iov, size_t iovcnt)
Short io-vector send operation.
Definition: uct.h:3081
ucs_status_t(* uct_error_handler_t)(void *arg, uct_ep_h ep, ucs_status_t status)
Callback to process peer failure.
Definition: uct_def.h:576
ucs_status_t uct_ep_get_short(uct_ep_h ep, void *buffer, unsigned length, uint64_t remote_addr, uct_rkey_t rkey)
Definition: uct.h:2981
ucs_status_t uct_worker_create(ucs_async_context_t *async, ucs_thread_mode_t thread_mode, uct_worker_h *worker_p)
Create a worker object.
ucs_status_t uct_ep_get_address(uct_ep_h ep, uct_ep_addr_t *addr)
Get endpoint address.
ucs_status_t uct_iface_flush(uct_iface_h iface, unsigned flags, uct_completion_t *comp)
Flush outstanding communication operations on an interface.
Definition: uct.h:2877
ucs_status_t uct_ep_get_zcopy(uct_ep_h ep, const uct_iov_t *iov, size_t iovcnt, uint64_t remote_addr, uct_rkey_t rkey, uct_completion_t *comp)
Read data from remote memory while avoiding local memory copy.
Definition: uct.h:3031
void uct_iface_progress_disable(uct_iface_h iface, unsigned flags)
Disable synchronous progress for the interface.
Definition: uct.h:3650
struct uct_iface_addr uct_iface_addr_t
Definition: uct_def.h:99
uint64_t field_mask
Definition: uct.h:252
ucs_thread_mode_t
Thread sharing mode.
Definition: thread_mode.h:19
ucs_status_t uct_ep_connect(uct_ep_h ep, const uct_ep_connect_params_t *params)
Connect a client side endpoint after it is bound to a local network device, i.e. uct_ep_params_t::cm_...
void(* uct_completion_callback_t)(uct_completion_t *self)
Callback to process send completion.
Definition: uct_def.h:538
void uct_md_close(uct_md_h md)
Close a memory domain.
ucs_status_t uct_query_components(uct_component_h **components_p, unsigned *num_components_p)
Query for list of components.
ucs_status_t uct_md_open(uct_component_h component, const char *md_name, const uct_md_config_t *config, uct_md_h *md_p)
Open a memory domain.
struct uct_cm_config uct_cm_config_t
Definition: uct_def.h:82
struct uct_ep_addr uct_ep_addr_t
Definition: uct_def.h:100
struct uct_md * uct_md_h
Memory domain handler.
Definition: uct_def.h:86
uct_ep_params_field
UCT endpoint created by uct_ep_create parameters field mask.
Definition: uct.h:952
ucs_status_t uct_ep_tag_eager_short(uct_ep_h ep, uct_tag_t tag, const void *data, size_t length)
Short eager tagged-send operation.
Definition: uct.h:3346
ucs_status_t uct_ep_am_short(uct_ep_h ep, uint8_t id, uint64_t header, const void *payload, unsigned length)
Definition: uct.h:3044
Remote key with its type.
Definition: uct.h:1748
ucs_status_t(* uct_tag_unexp_rndv_cb_t)(void *arg, unsigned flags, uint64_t stag, const void *header, unsigned header_length, uint64_t remote_addr, size_t length, const void *rkey_buf)
Callback to process unexpected rendezvous tagged message.
Definition: uct_def.h:884
ucs_status_t uct_ep_tag_rndv_cancel(uct_ep_h ep, void *op)
Cancel outstanding rendezvous operation.
Definition: uct.h:3501
ucs_status_t uct_ep_create(const uct_ep_params_t *params, uct_ep_h *ep_p)
Create new endpoint.
uct_device_type_t dev_type
Definition: uct.h:331
Memory domain attributes.
Definition: uct.h:1645
size_t(* uct_pack_callback_t)(void *dest, void *arg)
Callback for producing data.
Definition: uct_def.h:600
struct uct_rkey_bundle uct_rkey_bundle_t
Remote key with its type.
char md_name[UCT_MD_NAME_MAX]
Definition: uct.h:219
ucs_status_t uct_ep_am_zcopy(uct_ep_h ep, uint8_t id, const void *header, unsigned header_length, const uct_iov_t *iov, size_t iovcnt, unsigned flags, uct_completion_t *comp)
Send active message while avoiding local memory copy.
Definition: uct.h:3137
ucs_status_t
Status codes.
Definition: status.h:45
void uct_worker_progress_unregister_safe(uct_worker_h worker, uct_worker_cb_id_t *id_p)
Remove a slow path callback function from worker's progress.
enum uct_md_mem_attr_field uct_md_mem_attr_field_t
UCT MD memory attributes field mask.
ucs_status_t uct_iface_open(uct_md_h md, uct_worker_h worker, const uct_iface_params_t *params, const uct_iface_config_t *config, uct_iface_h *iface_p)
Open a communication interface.
ucs_status_t uct_rkey_ptr(uct_component_h component, uct_rkey_bundle_t *rkey_ob, uint64_t remote_addr, void **addr_p)
Get a local pointer to remote memory.
uct_md_mem_flags
Memory allocation/registration flags.
Definition: uct.h:804
Parameters for creating a listener object uct_listener_h by uct_listener_create.
Definition: uct.h:1542
uint64_t flags
Definition: uct.h:278
ucs_status_t uct_cm_client_ep_conn_notify(uct_ep_h ep)
Notify the server about client-side connection establishment.
Connection manager attributes, capabilities and limitations.
Definition: uct.h:1502
struct uct_listener * uct_listener_h
Definition: uct_def.h:107
ucs_status_t uct_md_mkey_pack(uct_md_h md, uct_mem_h memh, void *rkey_buffer)
Pack a remote key.
ucs_status_t uct_md_query(uct_md_h md, uct_md_attr_t *md_attr)
Query for memory domain attributes.
void(* uct_unpack_callback_t)(void *arg, const void *data, size_t length)
Callback for consuming data.
Definition: uct_def.h:613
void uct_iface_progress_enable(uct_iface_h iface, unsigned flags)
Enable synchronous progress for the interface.
Definition: uct.h:3625
ucs_status_t uct_ep_atomic64_fetch(uct_ep_h ep, uct_atomic_op_t opcode, uint64_t value, uint64_t *result, uint64_t remote_addr, uct_rkey_t rkey, uct_completion_t *comp)
Definition: uct.h:3214
uct_iface_feature
UCT interface configuration features.
Definition: uct.h:1036
ssize_t uct_ep_am_bcopy(uct_ep_h ep, uint8_t id, uct_pack_callback_t pack_cb, void *arg, unsigned flags)
Definition: uct.h:3092
uct_flush_flags
Flush modifiers.
Definition: uct.h:533
struct uct_component * uct_component_h
Definition: uct_def.h:78
ucs_status_t uct_iface_reject(uct_iface_h iface, uct_conn_request_h conn_request)
Reject connection request. Will invoke an error handler uct_error_handler_t on the remote transport i...
uct_md_mem_attr_field
UCT MD memory attributes field mask.
Definition: uct.h:1606
uct_alloc_method_t
Memory allocation methods.
Definition: uct.h:498
uint64_t uct_tag_t
Definition: uct_def.h:110
struct uct_iface_config uct_iface_config_t
Definition: uct_def.h:80
ucs_status_t uct_rkey_release(uct_component_h component, const uct_rkey_bundle_t *rkey_ob)
Release a remote key.
ucs_status_t uct_config_modify(void *config, const char *name, const char *value)
Modify interface configuration (uct_iface_config_t), memory domain configuration (uct_md_config_t) or...
Parameters for connecting a UCT endpoint by uct_ep_connect.
Definition: uct.h:1478
Parameters for allocating memory using uct_mem_alloc.
Definition: uct.h:2538
void uct_iface_mem_free(const uct_allocated_memory_t *mem)
Release memory allocated with uct_iface_mem_alloc().
enum ucs_memory_type ucs_memory_type_t
Memory types.
ucs_status_t uct_iface_fence(uct_iface_h iface, unsigned flags)
Ensures ordering of outstanding communications on the interface. Operations issued on the interface p...
Definition: uct.h:2895
ucs_status_t status
Definition: uct.h:1776
uct_ep_connect_params_field
UCT endpoint connected by uct_ep_connect parameters field mask.
Definition: uct.h:1019
struct uct_md_resource_desc uct_md_resource_desc_t
Memory domain resource descriptor.
ssize_t(* uct_cm_ep_priv_data_pack_callback_t)(void *arg, const uct_cm_ep_priv_data_pack_args_t *pack_args, void *priv_data)
Callback to fill the user's private data in a client-server flow.
Definition: uct_def.h:773
unsigned md_resource_count
Definition: uct.h:258
unsigned long ucs_time_t
Definition: time_def.h:23
ucs_status_t uct_ep_tag_rndv_request(uct_ep_h ep, uct_tag_t tag, const void *header, unsigned header_length, unsigned flags)
Send software rendezvous request.
Definition: uct.h:3526
uct_iface_open_mode
Mode in which to open the interface.
Definition: uct.h:629
ucs_status_t uct_md_mem_reg(uct_md_h md, void *address, size_t length, unsigned flags, uct_mem_h *memh_p)
Register memory for zero-copy sends and remote access.
ucs_status_t uct_ep_pending_add(uct_ep_h ep, uct_pending_req_t *req, unsigned flags)
Add a pending request to an endpoint.
Definition: uct.h:3244
ucs_status_t uct_iface_set_am_tracer(uct_iface_h iface, uct_am_tracer_t tracer, void *arg)
Set active message tracer for the interface.
void uct_ep_destroy(uct_ep_h ep)
Destroy an endpoint.
Parameters for creating a UCT endpoint by uct_ep_create.
Definition: uct.h:1327
void * ucs_status_ptr_t
Status pointer.
Definition: status.h:106
uct_sockaddr_accessibility_t
Socket address accessibility type.
Definition: uct.h:715
ucs_status_t uct_cm_open(uct_component_h component, uct_worker_h worker, const uct_cm_config_t *config, uct_cm_h *cm_p)
Open a connection manager.
ucs_status_t uct_component_query(uct_component_h component, uct_component_attr_t *component_attr)
Get component attributes.
ucs_status_t uct_cm_config_read(uct_component_h component, const char *env_prefix, const char *filename, uct_cm_config_t **config_p)
Read the configuration for a connection manager.
Memory domain attributes.
Definition: uct.h:1578
uct_iface_params_field
UCT interface created by uct_iface_open parameters field mask.
Definition: uct.h:650
ucs_status_t uct_listener_reject(uct_listener_h listener, uct_conn_request_h conn_request)
Reject a connection request.
struct uct_component_attr uct_component_attr_t
UCT component attributes.
ucs_status_t uct_cm_query(uct_cm_h cm, uct_cm_attr_t *cm_attr)
Get connection manager attributes.
void * uct_conn_request_h
Definition: uct_def.h:112
void uct_release_tl_resource_list(uct_tl_resource_desc_t *resources)
Release the list of resources returned from uct_md_query_tl_resources.
void uct_cm_close(uct_cm_h cm)
Close a connection manager.
ucs_status_t uct_md_iface_config_read(uct_md_h md, const char *tl_name, const char *env_prefix, const char *filename, uct_iface_config_t **config_p)
Read transport-specific interface configuration.
ucs_status_t uct_ep_fence(uct_ep_h ep, unsigned flags)
Ensures ordering of outstanding communications on the endpoint. Operations issued on the endpoint pri...
Definition: uct.h:3318
struct uct_allocated_memory uct_allocated_memory_t
Describes a memory allocated by UCT.
void uct_worker_destroy(uct_worker_h worker)
Destroy a worker object.
void(* uct_am_tracer_t)(void *arg, uct_am_trace_type_t type, uint8_t id, const void *data, size_t length, char *buffer, size_t max)
Callback to trace active messages.
Definition: uct_def.h:526
ucs_status_t(* uct_pending_callback_t)(uct_pending_req_t *self)
Callback to process pending requests.
Definition: uct_def.h:555
Communication resource descriptor.
Definition: uct.h:328
Pending request.
Definition: uct.h:1789
uct_md_resource_desc_t * md_resources
Definition: uct.h:273
ucs_status_t uct_iface_set_am_handler(uct_iface_h iface, uint8_t id, uct_am_callback_t cb, void *arg, uint32_t flags)
Set active message handler for the interface.
unsigned uct_worker_progress(uct_worker_h worker)
Explicit progress for UCT worker.
Definition: uct.h:2843
void(* uct_cm_ep_client_connect_callback_t)(uct_ep_h ep, void *arg, const uct_cm_ep_client_connect_args_t *connect_args)
Callback to process an incoming connection response on the client side from the server or handle a lo...
Definition: uct_def.h:723
void uct_worker_progress_register_safe(uct_worker_h worker, ucs_callback_t func, void *arg, unsigned flags, uct_worker_cb_id_t *id_p)
Add a slow path callback function to a worker progress.
struct uct_iface * uct_iface_h
Definition: uct_def.h:79
ucs_status_t uct_listener_create(uct_cm_h cm, const struct sockaddr *saddr, socklen_t socklen, const uct_listener_params_t *params, uct_listener_h *listener_p)
Create a new transport listener object.
struct uct_ep * uct_ep_h
Definition: uct_def.h:83
ucs_status_t uct_md_mem_dereg(uct_md_h md, uct_mem_h memh)
Undo the operation of uct_md_mem_reg().
void uct_release_component_list(uct_component_h *components)
Release the list of components returned from uct_query_components.
Posted tag context.
Definition: uct.h:1802
ucs_status_t uct_iface_query(uct_iface_h iface, uct_iface_attr_t *iface_attr)
Get interface attributes.
ucs_status_t(* uct_tag_unexp_eager_cb_t)(void *arg, void *data, size_t length, unsigned flags, uct_tag_t stag, uint64_t imm, void **context)
Callback to process unexpected eager tagged message.
Definition: uct_def.h:847
Completion handle.
Definition: uct.h:1773
ssize_t uct_ep_put_bcopy(uct_ep_h ep, uct_pack_callback_t pack_cb, void *arg, uint64_t remote_addr, uct_rkey_t rkey)
Definition: uct.h:2931
ucs_status_t uct_ep_get_bcopy(uct_ep_h ep, uct_unpack_callback_t unpack_cb, void *arg, size_t length, uint64_t remote_addr, uct_rkey_t rkey, uct_completion_t *comp)
Definition: uct.h:2992
struct uct_device_addr uct_device_addr_t
Definition: uct_def.h:98
void uct_iface_close(uct_iface_h iface)
Close and destroy an interface.
unsigned uct_iface_progress(uct_iface_h iface)
Perform a progress on an interface.
Definition: uct.h:3660
ucs_sys_device_t sys_device
Definition: uct.h:333
ucs_status_t(* uct_am_callback_t)(void *arg, void *data, size_t length, unsigned flags)
Callback to process incoming active message.
Definition: uct_def.h:508
uintptr_t uct_rkey_t
Definition: uct_def.h:85
ucs_status_t uct_iface_tag_recv_zcopy(uct_iface_h iface, uct_tag_t tag, uct_tag_t tag_mask, const uct_iov_t *iov, size_t iovcnt, uct_tag_context_t *ctx)
Post a tag to a transport interface.
Definition: uct.h:3566
ucs_status_t uct_ep_connect_to_ep(uct_ep_h ep, const uct_device_addr_t *dev_addr, const uct_ep_addr_t *ep_addr)
Connect endpoint to a remote endpoint.
struct uct_md_mem_attr uct_md_mem_attr_t
Memory domain attributes.
ucs_status_t uct_md_mem_query(uct_md_h md, const void *address, size_t length, uct_md_mem_attr_t *mem_attr)
Query attributes of a given pointer.
ucs_status_t uct_iface_mem_alloc(uct_iface_h iface, size_t length, unsigned flags, const char *name, uct_allocated_memory_t *mem)
Allocate memory which can be used for zero-copy communications.
ucs_status_t uct_ep_atomic32_fetch(uct_ep_h ep, uct_atomic_op_t opcode, uint32_t value, uint32_t *result, uint64_t remote_addr, uct_rkey_t rkey, uct_completion_t *comp)
Definition: uct.h:3200
int uct_md_is_sockaddr_accessible(uct_md_h md, const ucs_sock_addr_t *sockaddr, uct_sockaddr_accessibility_t mode)
Check if remote sock address is accessible from the memory domain.
ucs_status_t uct_ep_atomic_cswap32(uct_ep_h ep, uint32_t compare, uint32_t swap, uint64_t remote_addr, uct_rkey_t rkey, uint32_t *result, uct_completion_t *comp)
Definition: uct.h:3164
uct_iface_event_types
Asynchronous event types.
Definition: uct.h:521
Describes a memory allocated by UCT.
Definition: uct.h:1730