TCP loopback socket fusing
Gary Jennejohn
gljennjohn at googlemail.com
Wed Sep 15 16:45:09 UTC 2010
On Mon, 13 Sep 2010, Andre Oppermann wrote:
> Preliminary testing (with WITNESS and INVARIANTS enabled) has shown stable
> operation and a rough doubling of the throughput on loopback connections.
> I've tested most socket teardown cases and it behaves fine. I'm not entirely
> sure I've got all possible path's but the way it is integrated should
> properly defuse the sockets in all situations.
>
I tried this out with the following results:
a) booted the new kernel, started X, started firefox -> hard hang, had to
reset the box to recover. Note that firefox uses wwwoffle as a local,
caching proxy and wwwwoffle is accessed through localhost:8080
b) tried (a) again to make sure it wasn't a fluke -> same result
c) booted anew but started opera instead, which does _not_ use wwwoffle
as its proxy (net.inet.tcp.loopfuse=1) -> OK
d) I then set net.inet.tcp.loopfuse=0 before starting firefox -> OK
e) set net.inet.tcp.loopfuse=1 and ran cvsup to update my CVS tree
followed by checking out the changed sources, which uses loopback to
talk to cvsupd -> OK
So, somewhow trying to access wwwoffle through localhost:8080 causes a
hard hang of the box. Whether this has something to do with the port
number or just strange behavior on the part of wwwoffle I can't say,
because the hard hang makes debugging impossible.
By hard hang I mean that there is no visible activity, gkrellm isn't
updating, mouse and keyboard are ignored and ping from a different
machine shows no reaction, so I'd say the kernel is pretty much wedged.
For now I'm setting net.inet.tcp.loopfuse=0 in /etc/sysctl.conf.
--
Gary Jennejohn
More information about the freebsd-net
mailing list