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, 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>