yes, of course it "upsets me" - it shows up in macrobenchmarks as well
(not just lmbench) - wouldnt (and shouldnt) that upset you?
And even with a ridiculously high MTU of 1048576 there's only a 13%
improvement:
# ifconfig lo mtu 1048576
# taskset 1 ./bw_tcp -s
# taskset 1 ./bw_tcp localhost
Socket bandwidth using localhost: 2951.51 MB/sec
pipes are still another ~25% faster:
# taskset 1 ./bw_pipe
Pipe bandwidth: 3657.40 MB/sec
[...]
i talked about the localhost data transport only (in the portion you
dropped from your quotes), not about the connection API or the overall
management of such sockets. There's absolutely no good technical reason
i can see why plain loopback sockets should be forced to go over a
global lock, or why apps should be forced to change to another API when
the real problem is that kernel developers are lazy or incompetent to
fix their code.
And i'm still trying to establish whether we have common ground for
discussion: do you accept my numbers that TCP loopback transport
performs badly when compared to pipes (i think you accepted that
implicitly, but i dont want to put anything into your mouth).
Having agreed on that, do you share my view that it should be and could
be fixed? Or do you claim that it cannot be fixed and wont ever be
fixed?
Ingo
--