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

Reply via email to