static int run(void) { int i, ret = 0; ret = ft_init_fabric(); if (ret) return ret; ret = ft_exchange_keys(&remote); if (ret) goto out; if (!(opts.options & FT_OPT_SIZE)) { for (i = 0; i < TEST_CNT; i++) { if (!ft_use_size(i, opts.sizes_enabled)) continue; opts.transfer_size = test_size[i].size; init_test(&opts, test_name, sizeof(test_name)); ret = run_test(); if (ret) goto out; } } else { init_test(&opts, test_name, sizeof(test_name)); ret = run_test(); if (ret) goto out; } ft_sync(); ft_finalize(); out: return ret; }
static int run_test(void) { int ret; if (hints->ep_attr->type == FI_EP_MSG) ret = ft_init_fabric_cm(); else ret = ft_init_fabric(); if (ret) return ret; alloc_bufs(); ret = run_test_loop(); return ret; }
static int run_test(void) { int ret = 0; const char *message = "Hello from Client!"; size_t message_len = strlen(message) + 1; ret = ft_init_fabric(); if (ret) return ret; ret = ft_exchange_keys(&remote); if (ret) return ret; if (opts.dst_addr) { fprintf(stdout, "RMA write to server\n"); if (snprintf(tx_buf, tx_size, "%s", message) >= tx_size) { fprintf(stderr, "Transmit buffer too small.\n"); return -FI_ETOOSMALL; } ret = fi_write(ep, tx_buf, message_len, mr_desc, remote_fi_addr, remote.addr, remote.key, &fi_ctx_write); if (ret) return ret; ret = ft_get_tx_comp(++tx_seq); if (ret) return ret; fprintf(stdout, "Received a completion event for RMA write\n"); } else { ret = ft_get_rx_comp(rx_seq); if (ret) return ret; ret = check_recv_msg(message); if (ret) return ret; fprintf(stdout, "Received data from Client: %s\n", (char *) rx_buf); } /* TODO: need support for finalize operation to sync test */ return 0; }
static int run_test(void) { int i, ret; ret = alloc_multi_ep_res(); if (ret) return ret; if (hints->ep_attr->type == FI_EP_MSG) { ret = ft_init_fabric_cm(); if (ret) return ret; } else { opts.av_size = num_eps + 1; ret = ft_init_fabric(); if (ret) return ret; } /* Create additional endpoints. */ for (i = 0; i < num_eps; i++) { if (hints->ep_attr->type == FI_EP_MSG) { if (opts.dst_addr) { ret = setup_client_ep(&eps[i]); if (ret) return ret; } else { ret = setup_server_ep(&eps[i]); if (ret) return ret; } } else { ret = setup_av_ep(&eps[i], &remote_addr[i]); if (ret) return ret; } } tx_cq_cntr = rx_cq_cntr = 0; tx_seq = rx_seq = 0; ret = do_transfers(); if (ret) return ret; return 0; }
static int run_test(void) { int ret = 0; if (hints->ep_attr->type == FI_EP_MSG) ret = ft_init_fabric_cm(); else ret = ft_init_fabric(); if (ret) return ret; ret = overflow_test(); ft_sync(); ft_finalize(); return ret; }
static int run(void) { int i, ret; ret = ft_init_fabric(); if (ret) return ret; /* Post an extra receive to avoid lacking a posted receive in the * finalize. */ ret = fi_recv(ep, rx_buf, rx_size + ft_rx_prefix_size(), fi_mr_desc(mr), 0, &rx_ctx); if (!(opts.options & FT_OPT_SIZE)) { for (i = 0; i < TEST_CNT; i++) { if (!ft_use_size(i, opts.sizes_enabled)) continue; opts.transfer_size = test_size[i].size; if (opts.transfer_size > fi->ep_attr->max_msg_size) continue; init_test(&opts, test_name, sizeof(test_name)); ret = pingpong(); if (ret) return ret; } } else { init_test(&opts, test_name, sizeof(test_name)); ret = pingpong(); if (ret) return ret; } return ft_finalize(); }
static int av_removal_test(void) { int ret; fprintf(stdout, "AV address removal: "); hints = fi_dupinfo(base_hints); if (!hints) return -FI_ENOMEM; ret = ft_init_fabric(); if (ret) goto out; if (opts.dst_addr) { ret = ft_tx(ep, remote_fi_addr, opts.transfer_size, &tx_ctx); if (ret) { FT_PRINTERR("ft_tx", -ret); goto out; } ret = fi_av_remove(av, &remote_fi_addr, 1, 0); if (ret) { FT_PRINTERR("fi_av_remove", ret); goto out; } ret = ft_sync(); if (ret) goto out; ret = ft_init_av(); if (ret) { FT_PRINTERR("ft_init_av", -ret); goto out; } ret = ft_rx(ep, opts.transfer_size); if (ret) { FT_PRINTERR("ft_rx", -ret); goto out; } } else { ret = ft_rx(ep, opts.transfer_size); if (ret) { FT_PRINTERR("ft_rx", -ret); goto out; } ret = fi_av_remove(av, &remote_fi_addr, 1, 0); if (ret) { FT_PRINTERR("fi_av_remove", ret); goto out; } ret = ft_sync(); if (ret) goto out; ret = ft_init_av(); if (ret) { FT_PRINTERR("ft_init_av", -ret); goto out; } ret = ft_tx(ep, remote_fi_addr, opts.transfer_size, &tx_ctx); if (ret) { FT_PRINTERR("ft_tx", -ret); goto out; } } fprintf(stdout, "PASS\n"); (void) ft_sync(); out: ft_free_res(); return ret; }