[PATCH] fix net engine client read server write bug

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



The net engine was updated with specific 'listen' parameter which used
for identifying whether it is a tcp server, instead of previous
'rw=read' side must be the server. This let fio support bi-direction
net io test. fio_netio_open_file() has to follow this
principle. Otherwise, the following tcp client 'rw=read' and tcp
server 'rw=write' case doesn't work.

[global]
ioengine=net
port=8888
protocol=tcp
bs=4k
size=10g

[server]
listen
rw=write

[client]
hostname=localhost
startdelay=1
rw=read

BTW, examples/netio needs 'listen' and 'hostname' adjusted.

---
 engines/net.c  |    3 ++-
 examples/netio |    3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/engines/net.c b/engines/net.c
index 3401039..6748a3e 100644
--- a/engines/net.c
+++ b/engines/net.c
@@ -496,8 +496,9 @@ static int fio_netio_accept(struct thread_data
*td, struct fio_file *f)
 static int fio_netio_open_file(struct thread_data *td, struct fio_file *f)
 {
 	int ret;
+	struct netio_options *o = td->eo;

-	if (td_read(td))
+	if (o->listen)
 		ret = fio_netio_accept(td, f);
 	else
 		ret = fio_netio_connect(td, f);
diff --git a/examples/netio b/examples/netio
index bd44adb..3b1a7cd 100644
--- a/examples/netio
+++ b/examples/netio
@@ -2,7 +2,6 @@
 [global]
 ioengine=net
 #Use hostname=/tmp.fio.sock for local unix domain sockets
-hostname=localhost
 port=8888
 #Use =udp for UDP, =unix for local unix domain socket
 protocol=tcp
@@ -12,8 +11,10 @@ size=10g
 #verify=md5

 [receiver]
+listen
 rw=read

 [sender]
+hostname=localhost
 startdelay=1
 rw=write
-- 
1.7.2.3
--
To unsubscribe from this list: send the line "unsubscribe fio" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux SCSI]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]    [Yosemite Photos]    [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux