From ee81883dae9092902591db68d2e3a4a52640fec0 Mon Sep 17 00:00:00 2001 From: Sean Hefty Date: Sun, 27 May 2012 15:34:26 -0700 Subject: [PATCH] refresh (create temporary patch) --- meta | 5 +- patches/refresh-temp | 309 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 312 insertions(+), 2 deletions(-) create mode 100644 patches/refresh-temp diff --git a/meta b/meta index 35968561..bcc02010 100644 --- a/meta +++ b/meta @@ -1,6 +1,6 @@ Version: 1 -Previous: cf7b4f6384a398ccbc179b434117d211d6c8d267 -Head: d6711e2a63d3440d66f8e387acaa619bc8b38ec6 +Previous: 1acbb46f98dcb316ef585c54570a20efc12c5a37 +Head: c6a825d690fe21712443c854647472e0bf46e4c0 Applied: destroy_cqs: 66410c265b2661e16b7f6126bcc4ea5c7e1af1bd conn-err: ac46465ae6061b06f005ba9b49b371c9eb0d2325 @@ -19,5 +19,6 @@ Applied: rs-states: 8b381e3287431e07386e4117098c3d538cb7731e rs-recv-hang: 6b48a1e8e4f5f3012a3c0620bbf3e19d08d60692 rstream-conn: d6711e2a63d3440d66f8e387acaa619bc8b38ec6 + refresh-temp: c6a825d690fe21712443c854647472e0bf46e4c0 Unapplied: Hidden: diff --git a/patches/refresh-temp b/patches/refresh-temp new file mode 100644 index 00000000..dede47c4 --- /dev/null +++ b/patches/refresh-temp @@ -0,0 +1,309 @@ +Bottom: 4d07b8ef96e4bfe2386e4b787d9bf2f34ea1950f +Top: 030d1e2873e6a83256b30cc08db81505fba45366 +Author: Sean Hefty +Date: 2012-05-27 15:34:26 -0700 + +Refresh of rstream-conn + +--- + +diff --git a/examples/rstream.c b/examples/rstream.c +index e8b0324..4ecd2ce 100644 +--- a/examples/rstream.c ++++ b/examples/rstream.c +@@ -77,6 +77,7 @@ enum rs_optimization { + opt_bandwidth + }; + ++static int rs, lrs; + static int use_rs = 1; + static int use_async; + static int verify; +@@ -192,7 +193,6 @@ static int size_to_count(int size) + + static void init_latency_test(int size) + { +- optimization = opt_latency; + size_str(test_name, size); + sprintf(test_name, "%s_lat", test_name); + transfer_count = 1; +@@ -202,7 +202,6 @@ static void init_latency_test(int size) + + static void init_bandwidth_test(int size) + { +- optimization = opt_bandwidth; + size_str(test_name, size); + sprintf(test_name, "%s_bw", test_name); + iterations = 1; +@@ -247,7 +246,7 @@ static int do_poll(struct pollfd *fds) + return ret == 1 ? 0 : ret; + } + +-static int send_xfer(int rs, int size) ++static int send_xfer(int size) + { + struct pollfd fds; + int offset, ret; +@@ -279,7 +278,7 @@ static int send_xfer(int rs, int size) + return 0; + } + +-static int recv_xfer(int rs, int size) ++static int recv_xfer(int size) + { + struct pollfd fds; + int offset, ret; +@@ -314,7 +313,7 @@ static int recv_xfer(int rs, int size) + return 0; + } + +-static int sync_test(int rs) ++static int sync_test(void) + { + int ret; + +@@ -325,26 +324,26 @@ static int sync_test(int rs) + return dst_addr ? recv_xfer(rs, 4) : send_xfer(rs, 4); + } + +-static int run_test(int rs) ++static int run_test(void) + { + int ret, i, t; + +- ret = sync_test(rs); ++ ret = sync_test(); + if (ret) + goto out; + + gettimeofday(&start, NULL); + for (i = 0; i < iterations; i++) { + for (t = 0; t < transfer_count; t++) { +- ret = dst_addr ? send_xfer(rs, transfer_size) : +- recv_xfer(rs, transfer_size); ++ ret = dst_addr ? send_xfer(transfer_size) : ++ recv_xfer(transfer_size); + if (ret) + goto out; + } + + for (t = 0; t < transfer_count; t++) { +- ret = dst_addr ? recv_xfer(rs, transfer_size) : +- send_xfer(rs, transfer_size); ++ ret = dst_addr ? recv_xfer(transfer_size) : ++ send_xfer(transfer_size); + if (ret) + goto out; + } +@@ -401,11 +400,10 @@ static void set_options(int rs) + } + } + +-static int server_connect(void) ++static int server_listen(void) + { +- struct pollfd fds; + struct addrinfo hints, *res; +- int rs, lrs, ret; ++ int val, ret; + + memset(&hints, 0, sizeof hints); + hints.ai_flags = RAI_PASSIVE; +@@ -418,30 +416,41 @@ static int server_connect(void) + lrs = rs_socket(res->ai_family, res->ai_socktype, res->ai_protocol); + if (lrs < 0) { + perror("rsocket"); +- rs = lrs; ++ ret = lrs; + goto free; + } + +- set_options(lrs); +- rs = 1; +- rs = rs_setsockopt(lrs, SOL_SOCKET, SO_REUSEADDR, &rs, sizeof rs); +- if (rs) { ++ val = 1; ++ ret = rs_setsockopt(lrs, SOL_SOCKET, SO_REUSEADDR, &val, sizeof val); ++ if (ret) { + perror("rsetsockopt SO_REUSEADDR"); + goto close; + } + +- rs = rs_bind(lrs, res->ai_addr, res->ai_addrlen); +- if (rs) { ++ ret = rs_bind(lrs, res->ai_addr, res->ai_addrlen); ++ if (ret) { + perror("rbind"); + goto close; + } + +- rs = rs_listen(lrs, 1); +- if (rs) { ++ ret = rs_listen(lrs, 1); ++ if (ret) + perror("rlisten"); +- goto close; +- } + ++close: ++ if (ret) ++ rs_close(lrs); ++free: ++ freeaddrinfo(res); ++ return ret; ++} ++ ++static int server_connect(void) ++{ ++ struct pollfd fds; ++ int ret; ++ ++ set_options(lrs); + do { + if (use_async) { + fds.fd = lrs; +@@ -450,28 +459,26 @@ static int server_connect(void) + ret = do_poll(&fds); + if (ret) { + perror("rpoll"); +- goto close; ++ return ret; + } + } + + rs = rs_accept(lrs, NULL, 0); + } while (rs < 0 && (errno == EAGAIN || errno == EWOULDBLOCK)); +- if (rs < 0) ++ if (rs < 0) { ++ ret = rs; + perror("raccept"); ++ } + + set_options(rs); +-close: +- rs_close(lrs); +-free: +- freeaddrinfo(res); +- return rs; ++ return ret; + } + + static int client_connect(void) + { + struct addrinfo *res; + struct pollfd fds; +- int ret, rs, err; ++ int ret, err; + socklen_t len; + + ret = getaddrinfo(dst_addr, port, NULL, &res); +@@ -483,6 +490,7 @@ static int client_connect(void) + rs = rs_socket(res->ai_family, res->ai_socktype, res->ai_protocol); + if (rs < 0) { + perror("rsocket"); ++ ret = rs; + goto free; + } + +@@ -492,40 +500,38 @@ static int client_connect(void) + ret = rs_connect(rs, res->ai_addr, res->ai_addrlen); + if (ret && (errno != EINPROGRESS)) { + perror("rconnect"); +- goto err; ++ goto close; + } + +- if (errno == EINPROGRESS) { ++ if (ret && (errno == EINPROGRESS)) { + fds.fd = rs; + fds.events = POLLOUT; + ret = do_poll(&fds); + if (ret) +- goto err; ++ goto close; + + len = sizeof err; + ret = rs_getsockopt(rs, SOL_SOCKET, SO_ERROR, &err, &len); + if (ret) +- goto err; ++ goto close; + if (err) { + ret = -1; + errno = err; + perror("async rconnect"); +- goto err; + } + } + ++close: ++ if (ret) ++ rs_close(rs); + free: + freeaddrinfo(res); +- return rs; +-err: +- freeaddrinfo(res); +- rs_close(rs); + return ret; + } + + static int run(void) + { +- int i, rs, ret = 0; ++ int i, ret = 0; + + buf = malloc(!custom ? test_size[TEST_CNT - 1].size : transfer_size); + if (!buf) { +@@ -533,29 +539,45 @@ static int run(void) + return -1; + } + +- rs = dst_addr ? client_connect() : server_connect(); +- if (rs < 0) { +- ret = rs; +- goto free; ++ if (!dst_addr) { ++ ret = server_listen(); ++ if (ret) ++ goto free; + } + + printf("%-10s%-8s%-8s%-8s%-8s%8s %10s%13s\n", + "name", "bytes", "xfers", "iters", "total", "time", "Gb/sec", "usec/xfer"); + if (!custom) { ++ optimization = opt_latency; ++ ret = dst_addr ? client_connect() : server_connect(); ++ if (ret) ++ goto free; ++ + for (i = 0; i < TEST_CNT; i++) { + if (test_size[i].option > size_option) + continue; + init_latency_test(test_size[i].size); +- run_test(rs); ++ run_test(); + } ++ rs_shutdown(rs, SHUT_RDWR); ++ rs_close(rs); ++ ++ optimization = opt_bandwidth; ++ ret = dst_addr ? client_connect() : server_connect(); ++ if (ret) ++ goto free; + for (i = 0; i < TEST_CNT; i++) { + if (test_size[i].option > size_option) + continue; + init_bandwidth_test(test_size[i].size); +- run_test(rs); ++ run_test(); + } + } else { +- ret = run_test(rs); ++ ret = dst_addr ? client_connect() : server_connect(); ++ if (ret) ++ goto free; ++ ++ ret = run_test(); + } + + rs_shutdown(rs, SHUT_RDWR); -- 2.41.0