Version: 1
-Previous: 8f0c235d0f226a5806bd075052c37acfcc02eba3
-Head: 636f761cf2248c924efcb272271fa8e294190e1d
+Previous: f26c3e9acd1265c78c6ef49d59852244652805a5
+Head: f5a174fea7912e389c7fec5db64e4e39a78573a2
Applied:
transpose: 84e0beee0d2d3c217cd9703b9e438d25856cacb6
fork: c86c2d8e7d556ae2d94b3181939473a50337e550
- rstream-fork: aeb9fdd0ed3b27e1f1201c8c8b88bfb2e428bb12
- refresh-temp: 636f761cf2248c924efcb272271fa8e294190e1d
+ rstream-fork: f5a174fea7912e389c7fec5db64e4e39a78573a2
Unapplied:
waitall-buggy: c49c6b56c55385774065f5aa2704078e6ae0ceb8
rs-1sge: 8ec392829399dec7ed5c608b8697a482e5faa2de
+++ /dev/null
-Bottom: 079d7bbe6129342c62546a42ccf45af677b9160f
-Top: 2204d8d10b55cf98a31f8770863429936247a266
-Author: Sean Hefty <sean.hefty@intel.com>
-Date: 2012-07-17 17:03:46 -0700
-
-Refresh of rstream-fork
-
----
-
-diff --git a/examples/rstream.c b/examples/rstream.c
-index 48e2771..70bd252 100644
---- a/examples/rstream.c
-+++ b/examples/rstream.c
-@@ -84,6 +84,8 @@ static int verify;
- static int flags = MSG_DONTWAIT;
- static int poll_timeout = 0;
- static int custom;
-+static int use_fork;
-+static pid_t fork_pid;
- static enum rs_optimization optimization;
- static int size_option;
- static int iterations = 1;
-@@ -463,7 +465,11 @@ static int server_connect(void)
- perror("raccept");
- }
-
-- set_options(rs);
-+ if (use_fork)
-+ fork_pid = fork();
-+
-+ if (!fork_pid)
-+ set_options(rs);
- return ret;
- }
-
-@@ -546,7 +552,7 @@ static int run(void)
- if (ret)
- goto free;
-
-- for (i = 0; i < TEST_CNT; i++) {
-+ for (i = 0; i < TEST_CNT && !fork_pid; i++) {
- if (test_size[i].option > size_option)
- continue;
- init_latency_test(test_size[i].size);
-@@ -555,11 +561,14 @@ static int run(void)
- rs_shutdown(rs, SHUT_RDWR);
- rs_close(rs);
-
-+ if (use_fork && !fork_pid)
-+ goto free;
-+
- optimization = opt_bandwidth;
- ret = dst_addr ? client_connect() : server_connect();
- if (ret)
- goto free;
-- for (i = 0; i < TEST_CNT; i++) {
-+ for (i = 0; i < TEST_CNT && !fork_pid; i++) {
- if (test_size[i].option > size_option)
- continue;
- init_bandwidth_test(test_size[i].size);
-@@ -570,7 +579,8 @@ static int run(void)
- if (ret)
- goto free;
-
-- ret = run_test();
-+ if (!fork_pid)
-+ ret = run_test();
- }
-
- rs_shutdown(rs, SHUT_RDWR);
-@@ -593,6 +603,10 @@ static int set_test_opt(char *optarg)
- case 'b':
- flags &= ~MSG_DONTWAIT;
- break;
-+ case 'f':
-+ use_fork = 1;
-+ use_rs = 0;
-+ break;
- case 'n':
- flags |= MSG_DONTWAIT;
- break;
-@@ -613,6 +627,9 @@ static int set_test_opt(char *optarg)
- flags |= MSG_DONTWAIT;
- } else if (!strncasecmp("verify", optarg, 6)) {
- verify = 1;
-+ } else if (!strncasecmp("fork", optarg, 4)) {
-+ use_fork = 1;
-+ use_rs = 0;
- } else {
- return -1;
- }
-@@ -671,6 +688,7 @@ int main(int argc, char **argv)
- printf("\t s|sockets - use standard tcp/ip sockets\n");
- printf("\t a|async - asynchronous operation (use poll)\n");
- printf("\t b|blocking - use blocking calls\n");
-+ printf("\t f|fork - fork server processing\n");
- printf("\t n|nonblocking - use nonblocking calls\n");
- printf("\t v|verify - verify data\n");
- exit(1);
-diff --git a/man/rstream.1 b/man/rstream.1
-index ea87b95..29aa66b 100644
---- a/man/rstream.1
-+++ b/man/rstream.1
-@@ -48,6 +48,8 @@ a | async - uses asynchronous operation (e.g. select / poll)
- .P
- b | blocking - uses blocking calls
- .P
-+f | fork - fork server processing (forces -T s option)
-+.P
- n | nonblocking - uses non-blocking calls
- .P
- v | verify - verifies data transfers
Bottom: 079d7bbe6129342c62546a42ccf45af677b9160f
-Top: 079d7bbe6129342c62546a42ccf45af677b9160f
+Top: 2204d8d10b55cf98a31f8770863429936247a266
Author: Sean Hefty <sean.hefty@intel.com>
Date: 2012-07-17 15:32:54 -0700
---
-
+diff --git a/examples/rstream.c b/examples/rstream.c
+index 48e2771..70bd252 100644
+--- a/examples/rstream.c
++++ b/examples/rstream.c
+@@ -84,6 +84,8 @@ static int verify;
+ static int flags = MSG_DONTWAIT;
+ static int poll_timeout = 0;
+ static int custom;
++static int use_fork;
++static pid_t fork_pid;
+ static enum rs_optimization optimization;
+ static int size_option;
+ static int iterations = 1;
+@@ -463,7 +465,11 @@ static int server_connect(void)
+ perror("raccept");
+ }
+
+- set_options(rs);
++ if (use_fork)
++ fork_pid = fork();
++
++ if (!fork_pid)
++ set_options(rs);
+ return ret;
+ }
+
+@@ -546,7 +552,7 @@ static int run(void)
+ if (ret)
+ goto free;
+
+- for (i = 0; i < TEST_CNT; i++) {
++ for (i = 0; i < TEST_CNT && !fork_pid; i++) {
+ if (test_size[i].option > size_option)
+ continue;
+ init_latency_test(test_size[i].size);
+@@ -555,11 +561,14 @@ static int run(void)
+ rs_shutdown(rs, SHUT_RDWR);
+ rs_close(rs);
+
++ if (use_fork && !fork_pid)
++ goto free;
++
+ optimization = opt_bandwidth;
+ ret = dst_addr ? client_connect() : server_connect();
+ if (ret)
+ goto free;
+- for (i = 0; i < TEST_CNT; i++) {
++ for (i = 0; i < TEST_CNT && !fork_pid; i++) {
+ if (test_size[i].option > size_option)
+ continue;
+ init_bandwidth_test(test_size[i].size);
+@@ -570,7 +579,8 @@ static int run(void)
+ if (ret)
+ goto free;
+
+- ret = run_test();
++ if (!fork_pid)
++ ret = run_test();
+ }
+
+ rs_shutdown(rs, SHUT_RDWR);
+@@ -593,6 +603,10 @@ static int set_test_opt(char *optarg)
+ case 'b':
+ flags &= ~MSG_DONTWAIT;
+ break;
++ case 'f':
++ use_fork = 1;
++ use_rs = 0;
++ break;
+ case 'n':
+ flags |= MSG_DONTWAIT;
+ break;
+@@ -613,6 +627,9 @@ static int set_test_opt(char *optarg)
+ flags |= MSG_DONTWAIT;
+ } else if (!strncasecmp("verify", optarg, 6)) {
+ verify = 1;
++ } else if (!strncasecmp("fork", optarg, 4)) {
++ use_fork = 1;
++ use_rs = 0;
+ } else {
+ return -1;
+ }
+@@ -671,6 +688,7 @@ int main(int argc, char **argv)
+ printf("\t s|sockets - use standard tcp/ip sockets\n");
+ printf("\t a|async - asynchronous operation (use poll)\n");
+ printf("\t b|blocking - use blocking calls\n");
++ printf("\t f|fork - fork server processing\n");
+ printf("\t n|nonblocking - use nonblocking calls\n");
+ printf("\t v|verify - verify data\n");
+ exit(1);
+diff --git a/man/rstream.1 b/man/rstream.1
+index ea87b95..29aa66b 100644
+--- a/man/rstream.1
++++ b/man/rstream.1
+@@ -48,6 +48,8 @@ a | async - uses asynchronous operation (e.g. select / poll)
+ .P
+ b | blocking - uses blocking calls
+ .P
++f | fork - fork server processing (forces -T s option)
++.P
+ n | nonblocking - uses non-blocking calls
+ .P
+ v | verify - verifies data transfers