Hi, I'm evaluating 'netsplice' engine of fio. 'netsplice' works fine via localhost connection. Through the connection between two host, however, receiver side failed with the following error in both kernel 2.6.32 and 3.4.3. fio: pid=4848, err=5/file:backend.c:638, func=full resid, error=Input/output error Testbed 1 - fedora 17: $ uname -r 3.4.3-1.fc17.x86_64 Testbed 2 - centos 6.3: $ uname -r 2.6.32-279.5.2.el6.x86_64 Sender jobfile: $ cat netio [global] ioengine=netsplice port=8888 protocol=tcp bs=4k size=10g [sender] hostname=192.168.101.9 startdelay=1 rw=write Receiver jobfile: $ cat netio [global] ioengine=netsplice port=8888 protocol=tcp bs=4k size=10g [receiver] listen rw=read The receiver side involves splice and vmsplice for each io_u. First, it splice data from socket to pipe. Second, it vmsplice data from pipe to memory. I added some debug infomation, then found out that vmsplice would return '0' once the size of io_u data is not page alignment(4K). io 5542 queue: io_u 0xf24700: off=0/len=4096/ddir=0/receiver.1.0 net 5542 splice io_u 4096 bytes -- splice 4K bytes from socket to pipe net 5542 vmsplice 446 bytes -- vmsplice 446 bytes from pipe to memory net 5542 vmsplice 0 bytes -- vmsplice(3650 bytes) return '0' io 5542 requeue 0xf24700 io 5542 io_u_queued_completed: min=1 io 5542 getevents: 0 io 5542 prep: io_u 0xf24700: off=446/len=4096/ddir=0/receiver.1.0 io 5542 ->prep(0xf24700)=0 io 5542 queue: io_u 0xf24700: off=446/len=4096/ddir=0/receiver.1.0 net 5542 splice io_u 3650 bytes net 5542 vmsplice 0 bytes -- vmsplice(3650 bytes) return '0' file 5542 put file receiver.1.0, ref=2 io 5542 io_u_queued_completed: min=0 io 5542 getevents: 0 fio: pid=5542, err=5/file:backend.c:638, func=full resid, error=Input/output error file 5542 close files Any idea about this problem? Thanks Yufei -- 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