On Tue, Feb 26, 2013 at 05:31:04PM +0100, Stefan Hajnoczi wrote: > On Mon, Feb 25, 2013 at 07:02:30PM -0600, clow...@clownix.net wrote: > > The associated file contains a README that will guide you through the > > experiment that shows the difference between unix socket carried pings: > > 0.7ms and inet carried pings: 40ms!!! > > There is no fundamental reason for inet sockets to have a 40 millisecond > round-trip time on localhost. I remember from years ago that Solaris > "fuses" localhost inet sockets and bypasses TCP for them. > > Adding a call to socket_set_nodelay() net/socket.c might help.
I sent a patch to add socket_set_nodelay() to net/socket.c. Note that even before my patch I get sub-millisecond ping times on localhost with this: $ qemu -netdev socket,listen=:1234,id=socket0 \ -device virtio-net-pci,netdev=socket0 $ qemu -netdev socket,connect=:1234,id=socket0 \ -device virtio-net-pci,netdev=socket0 If you are seeing 40 ms average RTT on localhost then it's a configuration issue or bug in the test program you provided. Stefan