int ofi_nd_getinfo(uint32_t version, const char *node, const char *service, uint64_t flags, const struct fi_info *hints, struct fi_info **info) { if (ofi_nd_util_prov.info) { return util_getinfo(&ofi_nd_util_prov, version, node, service, flags, hints, info); } else { *info = NULL; return -FI_EINVAL; } }
static int udpx_getinfo(uint32_t version, const char *node, const char *service, uint64_t flags, struct fi_info *hints, struct fi_info **info) { int ret; ret = util_getinfo(&udpx_util_prov, version, node, service, flags, hints, info); if (ret) return ret; if (!(*info)->src_addr && !(*info)->dest_addr) udpx_getinfo_ifs(info); return 0; }
static int mlx_getinfo ( uint32_t version, const char *node, const char *service, uint64_t flags, const struct fi_info *hints, struct fi_info **info) { int status = -ENODATA; char *configfile_name = NULL; int inject_thresh = -1; mlx_descriptor.config = NULL; status = fi_param_get( &mlx_prov, "mlx_tinject_limit", &inject_thresh); if (!status) inject_thresh = FI_MLX_DEFAULT_INJECT_SIZE; FI_INFO( &mlx_prov, FI_LOG_CORE, "used inlect size = %d \n", inject_thresh); status = fi_param_get( &mlx_prov, "mlx_config", &configfile_name); if (!status) { configfile_name = NULL; } /* NS is disabled by default */ status = fi_param_get( &mlx_prov, "mlx_ns_enable", &mlx_descriptor.use_ns); if (!status) { mlx_descriptor.use_ns = 0; } status = fi_param_get( &mlx_prov, "mlx_ns_port", &mlx_descriptor.ns_port); if (!status) { mlx_descriptor.ns_port = FI_MLX_DEFAULT_NS_PORT; } status = ucp_config_read( NULL, status? NULL: configfile_name, &mlx_descriptor.config); if (status != UCS_OK) { FI_WARN( &mlx_prov, FI_LOG_CORE, "MLX error: invalid config file\n\t%d (%s)\n", status, ucs_status_string(status)); } /*Setup some presets*/ status = ucm_config_modify("MALLOC_HOOKS", "no"); if (status != UCS_OK) { FI_WARN( &mlx_prov, FI_LOG_CORE, "MLX error: failed to switch off UCM memory hooks:\t%d (%s)\n", status, ucs_status_string(status)); } FI_INFO( &mlx_prov, FI_LOG_CORE, "Loaded MLX version %s\n", ucp_get_version_string()); #if ENABLE_DEBUG if (mlx_descriptor.config && fi_log_enabled( &mlx_prov, FI_LOG_INFO, FI_LOG_CORE)) { ucp_config_print( mlx_descriptor.config, stderr, "Used MLX configuration", (1<<4)-1); } #endif *info = NULL; if (node || service) { FI_WARN(&mlx_prov, FI_LOG_CORE, "fi_getinfo with \"node != NULL \" or \"service != NULL \" is temporary not supported\n"); node = service = NULL; flags = 0; } /* Only Pure MLX address and IPv4 are supported */ if (hints->addr_format == FI_ADDR_MLX) { mlx_info.addr_format = FI_ADDR_MLX; } if (hints->addr_format <= FI_SOCKADDR_IN) { mlx_descriptor.use_ns = 1; mlx_info.addr_format = FI_SOCKADDR_IN; } status = util_getinfo( &mlx_util_prov, version, service, node, flags, hints, info); return status; }
static int udpx_getinfo(uint32_t version, const char *node, const char *service, uint64_t flags, struct fi_info *hints, struct fi_info **info) { return util_getinfo(&udpx_util_prov, version, node, service, flags, hints, info); }