Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 14 Sep 2010 14:35:49 +0400
From:      Maxim Dounin <mdounin@mdounin.ru>
To:        Ian FREISLICH <ianf@clue.co.za>
Cc:        freebsd-net@freebsd.org, Andre Oppermann <oppermann@networx.ch>, freebsd-current@freebsd.org, Fabien Thomas <fabien.thomas@netasq.com>
Subject:   Re: TCP loopback socket fusing
Message-ID:  <20100914103549.GI99657@mdounin.ru>
In-Reply-To: <E1OvSUd-0000mU-0l@clue.co.za>
References:  <A9862681-6A4D-43A3-9A26-C71A54CF86F0@netasq.com> <4C8E0C1E.2020707@networx.ch> <E1OvSUd-0000mU-0l@clue.co.za>

next in thread | previous in thread | raw e-mail | index | archive | help
Hello!

On Tue, Sep 14, 2010 at 12:12:03PM +0200, Ian FREISLICH wrote:

> Fabien Thomas wrote:
> > Great,
> > 
> > This will maybe kill the long time debate about "my loopback is slow vs
> > linux"
> > To have the best of both world what about a socket option to
> > enable/disable fusing:
> > can be useful when you need to see some connection "packetized".
> 
> To chime in, I had a "slow" loopback issue earlier this week.  It
> turned out the problem was caused by delayed ack on the loopback
> where the client didn't need to transmit any data to the server.
> It delayed each packet from the server by 100ms.  After patching
> the server to:
> 
> setsockopt(desc->accept_fd, IPPROTO_TCP, TCP_NODELAY, &x, sizeof(x));
> 
> It's now faster than on linux.
> 
> Perhaps this is one of the causes of "my loopback is slow vs linux".
> 
> FWIW, I couldn't find a way to turn off dealyed_ack on just loopback
> interface.

AFAIK in linux delayed ack behaves a bit more gently and doesn't 
delay first ack(s) in a connection.  As a result linux hides some 
classic delayed ack vs. Nagle problems.

Something similar probably should be adapted.

Maxim Dounin



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20100914103549.GI99657>