ucs_offsetof(ucp_config_t, ctx.zcopy_thresh), UCS_CONFIG_TYPE_MEMUNITS}, {"BCOPY_BW", "5800mb", "Estimation of buffer copy bandwidth", ucs_offsetof(ucp_config_t, ctx.bcopy_bw), UCS_CONFIG_TYPE_MEMUNITS}, {"ATOMIC_MODE", "guess", "Atomic operations synchronization mode.\n" " cpu - atomic operations are consistent with respect to the CPU.\n" " device - atomic operations are performed on one of the transport devices,\n" " and there is guarantee of consistency with respect to the CPU." " guess - atomic operations mode is configured based on underlying\n" " transport capabilities. If one of active transports supports\n" " the DEVICE atomic mode, the DEVICE mode is selected.\n" " Otherwise the CPU mode is selected.", ucs_offsetof(ucp_config_t, ctx.atomic_mode), UCS_CONFIG_TYPE_ENUM(ucp_atomic_modes)}, {"LOG_DATA", "0", "Size of packet data that is dumped to the log system in debug mode (0 - nothing).", ucs_offsetof(ucp_config_t, ctx.log_data_size), UCS_CONFIG_TYPE_MEMUNITS}, {"MAX_WORKER_NAME", UCS_PP_MAKE_STRING(UCP_WORKER_NAME_MAX), "Maximal length of worker name. Affects the size of worker address in debug builds.", ucs_offsetof(ucp_config_t, ctx.max_worker_name), UCS_CONFIG_TYPE_UINT}, {NULL} }; static ucp_tl_alias_t ucp_tl_aliases[] = { { "sm", { "mm", "knem", "sysv", "posix", "cma", "xpmem", NULL } }, { "shm", { "mm", "knem", "sysv", "posix", "cma", "xpmem", NULL } },
ucs_offsetof(uct_ib_iface_config_t, rx.max_poll), UCS_CONFIG_TYPE_UINT}, {"RX_INLINE", "0", "Number of bytes to request for inline receive. If the maximal supported size\n" "is smaller, it will be used instead. If it is possible to support a larger\n" "size than requested with the same hardware resources, it will be used instead.", ucs_offsetof(uct_ib_iface_config_t, rx.inl), UCS_CONFIG_TYPE_MEMUNITS}, UCT_IFACE_MPOOL_CONFIG_FIELDS("RX_", -1, 0, "receive", ucs_offsetof(uct_ib_iface_config_t, rx.mp), ""), {"ADDR_TYPE", "auto", "Set the interface address type. \"auto\" mode detects the type according to\n" "link layer type and IB subnet prefix.", ucs_offsetof(uct_ib_iface_config_t, addr_type), UCS_CONFIG_TYPE_ENUM(uct_ib_iface_addr_types)}, {"GID_INDEX", "0", "Port GID index to use.", ucs_offsetof(uct_ib_iface_config_t, gid_index), UCS_CONFIG_TYPE_UINT}, {"SL", "0", "Which IB service level to use.\n", ucs_offsetof(uct_ib_iface_config_t, sl), UCS_CONFIG_TYPE_UINT}, {"LID_PATH_BITS", "0-17", "list of IB Path bits separated by comma (a,b,c) " "which will be the low portion of the LID, according to the LMC in the fabric.", ucs_offsetof(uct_ib_iface_config_t, lid_path_bits), UCS_CONFIG_TYPE_ARRAY(path_bits_spec)}, {"PKEY", "0x7fff",
* Copyright (c) UT-Battelle, LLC. 2014-2015. ALL RIGHTS RESERVED. * Copyright (C) Mellanox Technologies Ltd. 2001-2014. ALL RIGHTS RESERVED. * See file LICENSE for terms. */ #include "ucs/debug/memtrack.h" #include "ucs/type/class.h" #include "uct/base/uct_md.h" #include "ugni_iface.h" #include "ugni_md.h" /* Forward declarations */ UCS_CONFIG_DEFINE_ARRAY(ugni_alloc_methods, sizeof(uct_alloc_method_t), UCS_CONFIG_TYPE_ENUM(uct_alloc_method_names)); pthread_mutex_t uct_ugni_global_lock = PTHREAD_MUTEX_INITIALIZER; /* For Cray devices we have only one MD */ static ucs_status_t uct_ugni_query_md_resources(uct_md_resource_desc_t **resources_p, unsigned *num_resources_p) { if (getenv("PMI_GNI_PTAG") != NULL) { return uct_single_md_resource(&uct_ugni_md_component, resources_p, num_resources_p); } else { *resources_p = NULL; *num_resources_p = 0; return UCS_OK; } }
#include <uct/api/uct.h> #include <uct/ib/base/ib_iface.h> #include <uct/base/uct_pd.h> #include <ucs/arch/atomic.h> #include <ucs/async/async.h> #include <ucs/debug/log.h> #include <poll.h> #include <infiniband/arch.h> static ucs_config_field_t uct_cm_iface_config_table[] = { {"IB_", "RX_INLINE=0", NULL, ucs_offsetof(uct_cm_iface_config_t, super), UCS_CONFIG_TYPE_TABLE(uct_ib_iface_config_table)}, {"ASYNC_MODE", "thread", "Async mode to use", ucs_offsetof(uct_cm_iface_config_t, async_mode), UCS_CONFIG_TYPE_ENUM(ucs_async_mode_names)}, {"TIMEOUT", "300ms", "Timeout for MAD layer", ucs_offsetof(uct_cm_iface_config_t, timeout), UCS_CONFIG_TYPE_TIME}, {"RETRY_COUNT", "20", "Number of retries for MAD layer", ucs_offsetof(uct_cm_iface_config_t, retry_count), UCS_CONFIG_TYPE_UINT}, {"MAX_OP", "1024", "Maximal number of outstanding SIDR operations", ucs_offsetof(uct_cm_iface_config_t, max_outstanding), UCS_CONFIG_TYPE_UINT}, {NULL} }; static uct_ib_iface_ops_t uct_cm_iface_ops;
[UCS_HANDLE_ERROR_FREEZE] = "freeze", [UCS_HANDLE_ERROR_DEBUG] = "debug", [UCS_HANDLE_ERROR_LAST] = NULL }; static UCS_CONFIG_DEFINE_ARRAY(signo, sizeof(int), UCS_CONFIG_TYPE_SIGNO); static ucs_config_field_t ucs_global_opts_table[] = { {"LOG_LEVEL", "warn", "UCS logging level. Messages with a level higher or equal to the selected " "will be printed.\n" "Possible values are: fatal, error, warn, info, debug, trace, data, func, poll.", ucs_offsetof(ucs_global_opts_t, log_level), UCS_CONFIG_TYPE_ENUM(ucs_log_level_names)}, {"LOG_FILE", "", "If not empty, UCS will print log messages to the specified file instead of stdout.\n" "The following substitutions are performed on this string:\n" " %p - Replaced with process ID\n" " %h - Replaced with host name\n", ucs_offsetof(ucs_global_opts_t, log_file), UCS_CONFIG_TYPE_STRING}, {"LOG_BUFFER", "1024", "Buffer size for a single log message.", ucs_offsetof(ucs_global_opts_t, log_buffer_size), UCS_CONFIG_TYPE_MEMUNITS}, {"LOG_DATA_SIZE", "0", "How much packet payload to print, at most, in data mode.",
[UCS_HANDLE_ERROR_BACKTRACE] = "bt", [UCS_HANDLE_ERROR_FREEZE] = "freeze", [UCS_HANDLE_ERROR_DEBUG] = "debug", [UCS_HANDLE_ERROR_LAST] = NULL }; static UCS_CONFIG_DEFINE_ARRAY(signo, sizeof(int), UCS_CONFIG_TYPE_SIGNO); static ucs_config_field_t ucs_global_opts_table[] = { {"LOG_LEVEL", "warn", "UCS logging level. Messages with a level higher or equal to the selected " "will be printed.\n" "Possible values are: fatal, error, warn, info, debug, trace, data, func, poll.", ucs_offsetof(ucs_global_opts_t, log_level), UCS_CONFIG_TYPE_ENUM(ucs_log_level_names)}, {"LOG_FILE", "", "If not empty, UCS will print log messages to the specified file instead of stdout.\n" "The following substitutions are performed on this string:\n" " %p - Replaced with process ID\n" " %h - Replaced with host name\n", ucs_offsetof(ucs_global_opts_t, log_file), UCS_CONFIG_TYPE_STRING}, {"LOG_BUFFER", "1024", "Buffer size for a single log message.", ucs_offsetof(ucs_global_opts_t, log_buffer_size), UCS_CONFIG_TYPE_MEMUNITS}, {"LOG_DATA_SIZE", "0", "How much packet payload to print, at most, in data mode.",