static int run(void) { int i, ret = 0; ret = init_fabric(); if (ret) return ret; ret = init_av(); if (ret) goto out; if (!(opts.options & FT_OPT_SIZE)) { for (i = 0; i < TEST_CNT; i++) { if (test_size[i].option > opts.size_option) 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; } /* Finalize before closing ep */ ft_finalize(fi, ep, txcq, rxcq, remote_fi_addr); out: return ret; }
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(void) { int i, ret = 0; ret = init_fabric(); if (ret) return ret; ret = ft_init_av(); if (ret) goto out; if (!(opts.options & FT_OPT_SIZE)) { for (i = 0; i < TEST_CNT; i++) { if (test_size[i].option > opts.size_option) continue; opts.transfer_size = test_size[i].size; init_test(&opts, test_name, sizeof(test_name)); ret = pingpong(); if (ret) goto out; } } else { init_test(&opts, test_name, sizeof(test_name)); ret = pingpong(); if (ret) goto out; } ft_finalize(); out: return ret; }
static int run(void) { int i, ret = 0; if (!opts.dst_addr) { ret = server_listen(); if (ret) return ret; } ret = opts.dst_addr ? client_connect() : server_connect(); if (ret) return ret; ret = exchange_addr_key(); if (ret) return ret; if (!(opts.user_options & FT_OPT_SIZE)) { for (i = 0; i < TEST_CNT; i++) { if (test_size[i].option > opts.size_option) 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; } sync_test(); wait_for_data_completion(scq, max_credits - credits); /* Finalize before closing ep */ ft_finalize(ep, scq, rcq, FI_ADDR_UNSPEC); out: fi_shutdown(ep, 0); free_ep_res(); if (!opts.dst_addr) free_lres(); fi_close(&dom->fid); fi_close(&fab->fid); return ret; }
static int run(void) { int i, ret = 0; ret = opts.dst_addr ? client_connect() : server_connect(); if (ret) return ret; if (!(opts.user_options & FT_OPT_SIZE)) { for (i = 0; i < TEST_CNT; i++) { if (test_size[i].option > opts.size_option) 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; } while (credits < max_credits) poll_all_sends(); ft_finalize(ep, scq, rcq, remote_fi_addr); out: free_ep_res(); ret = fi_close(&av->fid); if (ret != 0) { FT_PRINTERR("fi_close", ret); } ret = fi_close(&dom->fid); if (ret != 0) { FT_PRINTERR("fi_close", ret); } ret = fi_close(&fab->fid); if (ret != 0) { FT_PRINTERR("fi_close", ret); } return ret; }
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 ret = 0; ret = init_fabric(); if (ret) goto out; ret = init_av(); if (ret) goto out; ret = run_test(); rx_seq++; ft_finalize(); out: return ret; }
static int run(void) { char *node, *service; uint64_t flags; int i, ret; ret = ft_read_addr_opts(&node, &service, hints, &flags, &opts); if (ret) return ret; if (!opts.dst_addr) { ret = ft_start_server(); if (ret) return ret; } ret = opts.dst_addr ? client_connect() : server_connect(); if (ret) { return ret; } 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 = pingpong(); if (ret) goto out; } } else { init_test(&opts, test_name, sizeof(test_name)); ret = pingpong(); if (ret) goto out; } ret = ft_finalize(); out: fi_shutdown(ep, 0); return ret; }
static int run(void) { int i, ret = 0; ret = init_fabric(); if (ret) return ret; ret = init_av(); if (ret) goto out; ret = exchange_addr_key(); if (ret) goto out; if (!(opts.user_options & FT_OPT_SIZE)) { for (i = 0; i < TEST_CNT; i++) { if (test_size[i].option > opts.size_option) 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; } /* Finalize before closing ep */ ft_finalize(ep, scq, rcq, remote_fi_addr); out: free_ep_res(); fi_close(&dom->fid); fi_close(&fab->fid); return ret; }
static int run(void) { int i, ret; if (!opts.dst_addr) { ret = ft_start_server(); if (ret) return ret; } ret = opts.dst_addr ? ft_client_connect() : ft_server_connect(); if (ret) return ret; ret = ft_exchange_keys(&remote); if (ret) return ret; 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: fi_shutdown(ep, 0); return ret; }
static int run(void) { int i, ret; if (!opts.dst_addr) { ret = ft_start_server(); if (ret) return ret; } ret = opts.dst_addr ? ft_client_connect() : ft_server_connect(); if (ret) { return ret; } ret = ft_bw_init(); if (ret) return ret; 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 = bandwidth(); if (ret) goto out; } } else { init_test(&opts, test_name, sizeof(test_name)); ret = bandwidth(); if (ret) goto out; } ft_finalize(); out: 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 run(void) { int ret = 0; ret = init_fabric(); if (ret) return ret; ret = init_av(); if (ret) goto out; // Receiver if (opts.dst_addr) { // search for initial tag, it should fail since the sender // hasn't sent anyting fprintf(stdout, "Searching msg with tag [%" PRIu64 "]\n", tag_data); tagged_search(tag_data); fprintf(stdout, "Posting buffer for msg with tag [%" PRIu64 "]\n", tag_data + 1); ret = post_recv(tag_data + 1); if (ret) goto out; // synchronize with sender fprintf(stdout, "\nSynchronizing with sender..\n\n"); ret = sync_test(); if (ret) goto out; // wait for the completion event of the next tag ret = wait_for_tagged_completion(rcq, 1); if (ret) goto out; fprintf(stdout, "Received completion event for msg with tag " "[%" PRIu64 "]\n", tag_data + 1); // search again for the initial tag, it should be successful now fprintf(stdout, "Searching msg with initial tag [%" PRIu64 "]\n", tag_data); tagged_search(tag_data); // wait for the completion event of the initial tag ret = recv_msg(tag_data); if (ret) goto out; fprintf(stdout, "Posted buffer and received completion event for" " msg with tag [%" PRIu64 "]\n", tag_data); } else { // Sender // synchronize with receiver fprintf(stdout, "Synchronizing with receiver..\n\n"); ret = sync_test(); if (ret) goto out; fprintf(stdout, "Sending msg with tag [%" PRIu64 "]\n", tag_data); ret = send_msg(16, tag_data); if (ret) goto out; fprintf(stdout, "Sending msg with tag [%" PRIu64 "]\n", tag_data + 1); ret = send_msg(16, tag_data + 1); if (ret) goto out; } /* Finalize before closing ep */ ft_finalize(ep, scq, rcq, remote_fi_addr); out: free_ep_res(); fi_close(&dom->fid); fi_close(&fab->fid); return ret; }
static int run(void) { int ret; ret = init_fabric(); if (ret) return ret; ret = ft_init_av(); if (ret) return ret; if (opts.dst_addr) { printf("Searching for a bad msg\n"); ret = tagged_peek(0xbad); if (ret != -FI_ENOMSG) { FT_PRINTERR("FI_PEEK", ret); return ret; } printf("Synchronizing with sender..\n"); ret = ft_sync(); if (ret) return ret; printf("Searching for a good msg\n"); ret = tagged_peek(0x900d); if (ret != 1) { FT_PRINTERR("FI_PEEK", ret); return ret; } printf("Receiving msg\n"); ret = fi_trecv(ep, buf, rx_size, fi_mr_desc(mr), remote_fi_addr, 0x900d, 0, &rx_ctx); if (ret) { FT_PRINTERR("fi_trecv", ret); return ret; } printf("Completing recv\n"); ret = ft_get_rx_comp(++rx_seq); if (ret) return ret; } else { printf("Sending tagged message\n"); ret = fi_tsend(ep, tx_buf, tx_size, fi_mr_desc(mr), remote_fi_addr, 0x900d, &tx_ctx); if (ret) return ret; printf("Synchronizing with receiver..\n"); ret = ft_sync(); if (ret) return ret; printf("Getting send completion\n"); ret = ft_get_tx_comp(tx_seq + 1); if (ret) return ret; } ft_finalize(); return 0; }